ChangeLog rotatation and copyright year update
[deliverable/binutils-gdb.git] / ld / scripttempl / elf32cr16c.sc
1 # Linker Script for National Semiconductor's CR16C-ELF32.
2 #
3 # Copyright (C) 2014-2015 Free Software Foundation, Inc.
4 #
5 # Copying and distribution of this file, with or without modification,
6 # are permitted in any medium without royalty provided the copyright
7 # notice and this notice are preserved.
8
9 test -z "$ENTRY" && ENTRY=_start
10 cat <<EOF
11
12 /* Example Linker Script for linking NS CR16C or CR16CPlus
13 elf32 files, which were compiled with either the near data
14 model or the default data model.
15
16 Copyright (C) 2014-2015 Free Software Foundation, Inc.
17
18 Copying and distribution of this script, with or without modification,
19 are permitted in any medium without royalty provided the copyright
20 notice and this notice are preserved. */
21
22
23 ${RELOCATING+ENTRY(${ENTRY})}
24
25 MEMORY
26 {
27 near_rom : ORIGIN = 0x4, LENGTH = 512K - 4
28 near_ram : ORIGIN = 512K, LENGTH = 512K - 64K
29 rom : ORIGIN = 1M, LENGTH = 3M
30 ram : ORIGIN = 4M, LENGTH = 10M
31 }
32
33 SECTIONS
34 {
35 /* The heap is located in near memory, to suit both the near and
36 default data models. The heap and stack are aligned to the bus
37 width, as a speed optimization for accessing data located
38 there. The alignment to 4 bytes is compatible for both the CR16C
39 bus width (2 bytes) and CR16CPlus bus width (4 bytes). */
40
41 .text : { __TEXT_START = .; *(.text) __TEXT_END = .; } > rom
42 .rdata : { __RDATA_START = .; *(.rdata_4) *(.rdata_2) *(.rdata_1) __RDATA_END = .; } > near_rom
43 .ctor ALIGN(4) : { __CTOR_LIST = .; *(.ctors) __CTOR_END = .; } > near_rom
44 .dtor ALIGN(4) : { __DTOR_LIST = .; *(.dtors) __DTOR_END = .; } > near_rom
45 .data : { __DATA_START = .; *(.data_4) *(.data_2) *(.data_1) *(.data) __DATA_END = .; } > ram AT > rom
46 .bss (NOLOAD) : { __BSS_START = .; *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) __BSS_END = .; } > ram
47 .nrdata : { __NRDATA_START = .; *(.nrdat_4) *(.nrdat_2) *(.nrdat_1) __NRDATA_END = .; } > near_rom
48 .ndata : { __NDATA_START = .; *(.ndata_4) *(.ndata_2) *(.ndata_1) __NDATA_END = .; } > near_ram AT > rom
49 .nbss (NOLOAD) : { __NBSS_START = .; *(.nbss_4) *(.nbss_2) *(.nbss_1) *(.ncommon) __NBSS_END = .; } > near_ram
50 .heap (NOLOAD) : { . = ALIGN(4); __HEAP_START = .; . += 0x2000; __HEAP_MAX = .; } > near_ram
51 .stack (NOLOAD) : { . = ALIGN(4); . += 0x6000; __STACK_START = .; } > ram
52 .istack (NOLOAD) : { . = ALIGN(2); . += 0x100; __ISTACK_START = .; } > ram
53 }
54
55 __DATA_IMAGE_START = LOADADDR(.data);
56 __NDATA_IMAGE_START = LOADADDR(.ndata);
57
58 EOF
This page took 0.03163 seconds and 4 git commands to generate.