~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/ld/scripttempl/elf32cr16c.sc

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Linker Script for National Semiconductor's CR16C-ELF32.
 
2
 
 
3
test -z "$ENTRY" && ENTRY=_start
 
4
cat <<EOF
 
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
${RELOCATING+ENTRY(${ENTRY})}
 
11
 
 
12
MEMORY
 
13
{
 
14
  near_rom  : ORIGIN = 0x4,     LENGTH = 512K - 4
 
15
  near_ram  : ORIGIN = 512K,    LENGTH = 512K - 64K
 
16
  rom       : ORIGIN = 1M,      LENGTH = 3M
 
17
  ram       : ORIGIN = 4M,      LENGTH = 10M
 
18
}
 
19
 
 
20
SECTIONS
 
21
{
 
22
/* The heap is located in near memory, to suit both the near and
 
23
   default data models.  The heap and stack are aligned to the bus
 
24
   width, as a speed optimization for accessing  data located
 
25
   there. The alignment to 4 bytes is compatible for both the CR16C
 
26
   bus width (2 bytes) and CR16CPlus bus width (4 bytes).  */
 
27
 
 
28
  .text            : { __TEXT_START = .;   *(.text)                                        __TEXT_END = .; } > rom      
 
29
  .rdata           : { __RDATA_START = .;  *(.rdata_4) *(.rdata_2) *(.rdata_1)             __RDATA_END = .; } > near_rom
 
30
  .ctor ALIGN(4)   : { __CTOR_LIST = .;    *(.ctors)                                       __CTOR_END = .; } > near_rom
 
31
  .dtor ALIGN(4)   : { __DTOR_LIST = .;    *(.dtors)                                       __DTOR_END = .; } > near_rom
 
32
  .data            : { __DATA_START = .;   *(.data_4) *(.data_2) *(.data_1) *(.data)       __DATA_END = .; } > ram AT > rom
 
33
  .bss (NOLOAD)    : { __BSS_START = .;    *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) __BSS_END = .; } > ram
 
34
  .nrdata          : { __NRDATA_START = .; *(.nrdat_4) *(.nrdat_2) *(.nrdat_1)             __NRDATA_END =  .; } > near_rom
 
35
  .ndata           : { __NDATA_START = .;  *(.ndata_4) *(.ndata_2) *(.ndata_1)             __NDATA_END = .; } > near_ram AT > rom
 
36
  .nbss (NOLOAD)   : { __NBSS_START = .;   *(.nbss_4) *(.nbss_2) *(.nbss_1) *(.ncommon)    __NBSS_END = .; } > near_ram
 
37
  .heap (NOLOAD)   : { . = ALIGN(4); __HEAP_START = .; . += 0x2000;                        __HEAP_MAX = .; } > near_ram
 
38
  .stack (NOLOAD)  : { . = ALIGN(4); . += 0x6000; __STACK_START = .; } > ram
 
39
  .istack (NOLOAD) : { . = ALIGN(2); . += 0x100; __ISTACK_START = .; } > ram
 
40
}
 
41
 
 
42
__DATA_IMAGE_START = LOADADDR(.data);
 
43
__NDATA_IMAGE_START = LOADADDR(.ndata);
 
44
 
 
45
EOF