OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-binutils/] [binutils-2.19.1/] [ld/] [scripttempl/] [elf32cr16c.sc] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 jlechner
# Linker Script for National Semiconductor's CR16C-ELF32.
2
 
3
test -z "$ENTRY" && ENTRY=_start
4
cat <
5
 
6
/* Example Linker Script for linking NS CR16C or CR16CPlus
7
   elf32 files, which were compiled with either the near data
8
   model or the default data model.  */
9
 
10
/* Force the entry point to be entered in the output file as
11
   an undefined symbol. This is needed in case the entry point
12
   (which is not called explicitly) is in an archive (which is
13
   the usual case).  */
14
 
15
${RELOCATING+EXTERN(${ENTRY})}
16
${RELOCATING+ENTRY(${ENTRY})}
17
 
18
MEMORY
19
{
20
  near_rom  : ORIGIN = 0x4,     LENGTH = 512K - 4
21
  near_ram  : ORIGIN = 512K,    LENGTH = 512K - 64K
22
  rom       : ORIGIN = 1M,      LENGTH = 3M
23
  ram       : ORIGIN = 4M,      LENGTH = 10M
24
}
25
 
26
SECTIONS
27
{
28
/* The heap is located in near memory, to suit both the near and
29
   default data models.  The heap and stack are aligned to the bus
30
   width, as a speed optimization for accessing  data located
31
   there. The alignment to 4 bytes is compatible for both the CR16C
32
   bus width (2 bytes) and CR16CPlus bus width (4 bytes).  */
33
 
34
  .text          : { __TEXT_START = .;   *(.text)                                        __TEXT_END = .; } > rom
35
  .rdata         : { __RDATA_START = .;  *(.rdata_4) *(.rdata_2) *(.rdata_1)             __RDATA_END = .; } > near_rom
36
  .ctor ALIGN(4) : { __CTOR_LIST = .;    *(.ctors)                                       __CTOR_END = .; } > near_rom
37
  .dtor ALIGN(4) : { __DTOR_LIST = .;    *(.dtors)                                       __DTOR_END = .; } > near_rom
38
  .data          : { __DATA_START = .;   *(.data_4) *(.data_2) *(.data_1) *(.data)       __DATA_END = .; } > ram AT > rom
39
  .bss (NOLOAD)  : { __BSS_START = .;    *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) __BSS_END = .; } > ram
40
  .nrdata        : { __NRDATA_START = .; *(.nrdat_4) *(.nrdat_2) *(.nrdat_1)             __NRDATA_END =  .; } > near_rom
41
  .ndata         : { __NDATA_START = .;  *(.ndata_4) *(.ndata_2) *(.ndata_1)             __NDATA_END = .; } > near_ram AT > rom
42
  .nbss (NOLOAD) : { __NBSS_START = .;   *(.nbss_4) *(.nbss_2) *(.nbss_1) *(.ncommon)    __NBSS_END = .; } > near_ram
43
  .heap          : { . = ALIGN(4); __HEAP_START = .; . += 0x2000;                        __HEAP_MAX = .; } > near_ram
44
  .stack         : { . = ALIGN(4); . += 0x6000; __STACK_START = .; } > ram
45
  .istack        : { . = ALIGN(2); . += 0x100; __ISTACK_START = .; } > ram
46
}
47
 
48
__DATA_IMAGE_START = LOADADDR(.data);
49
__NDATA_IMAGE_START = LOADADDR(.ndata);
50
 
51
EOF

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.