Commit | Line | Data |
---|---|---|
3f8107ab AM |
1 | TORS=".tors : |
2 | { | |
3 | ___ctors = . ; | |
4 | *(.ctors) | |
5 | ___ctors_end = . ; | |
6 | ___dtors = . ; | |
7 | *(.dtors) | |
8 | ___dtors_end = . ; | |
9 | . = ALIGN(4); | |
10 | } > ram" | |
11 | ||
12 | cat <<EOF | |
13 | OUTPUT_FORMAT("${OUTPUT_FORMAT}") | |
14 | OUTPUT_ARCH(${ARCH}) | |
15 | ${LIB_SEARCH_DIRS} | |
16 | ||
ea4a7f99 | 17 | PROVIDE( __PMSIZE = 256K ); |
18 | PROVIDE( __RAMSIZE = 64K ); | |
19 | ||
3f8107ab AM |
20 | MEMORY |
21 | { | |
ea4a7f99 | 22 | flash (rx) : ORIGIN = 0, LENGTH = __PMSIZE |
23 | ram (rw!x) : ORIGIN = 0x800000, LENGTH = __RAMSIZE | |
3f8107ab AM |
24 | } |
25 | SECTIONS | |
26 | { | |
27 | .text : | |
28 | { | |
29 | *(.text*) | |
30 | *(.strings) | |
31 | *(._pm*) | |
32 | *(.init) | |
33 | *(.fini) | |
34 | ${RELOCATING+ _etext = . ; } | |
35 | . = ALIGN(4); | |
36 | } ${RELOCATING+ > flash} | |
37 | ${CONSTRUCTING+${TORS}} | |
38 | .data : AT (ADDR (.text) + SIZEOF (.text)) | |
39 | { | |
40 | *(.data) | |
41 | *(.rodata) | |
42 | *(.rodata*) | |
43 | ${RELOCATING+ _edata = . ; } | |
44 | } ${RELOCATING+ > ram} | |
45 | .bss SIZEOF(.data) + ADDR(.data) : | |
46 | { | |
47 | ${RELOCATING+ _bss_start = . ; } | |
48 | *(.bss) | |
49 | *(COMMON) | |
50 | ${RELOCATING+ _end = . ; } | |
51 | } ${RELOCATING+ > ram} | |
52 | ||
53 | ${RELOCATING+ __data_load_start = LOADADDR(.data); } | |
54 | ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); } | |
55 | ||
56 | .stab 0 ${RELOCATING+(NOLOAD)} : | |
57 | { | |
58 | *(.stab) | |
59 | } | |
60 | .stabstr 0 ${RELOCATING+(NOLOAD)} : | |
61 | { | |
62 | *(.stabstr) | |
63 | } | |
64 | } | |
65 | EOF |