1 /* Generated Linker Script file */
\r
3 * Template Version 1.2 dated 19 Nov 2012
\r
6 OUTPUT_FORMAT("elf32-littlearm")
\r
8 ENTRY(__Xmc4400_reset_cortex_m)
\r
9 GROUP(-lxmclibcstubs)
\r
13 FLASH_1_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x80000
\r
14 FLASH_1_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x80000
\r
15 PSRAM_1(!RX) : ORIGIN = 0x1FFFC000, LENGTH = 0x4000
\r
16 DSRAM_1_system(!RX) : ORIGIN = 0x20000000, LENGTH = 0x8000
\r
17 DSRAM_2_comm(!RX) : ORIGIN = 0x20008000, LENGTH = 0x8000
\r
18 SRAM_combined(!RX) : ORIGIN = 0x1FFFC000, LENGTH = 0x14000
\r
27 .text : AT(ORIGIN(FLASH_1_uncached))
\r
31 *(.Xmc4400.postreset);
\r
33 *(.text .text.* .gnu.linkonce.t.*);
\r
35 /* ARM <->THUMB interworking */
\r
42 __preinit_array_start = .;
\r
43 KEEP (*(.preinit_array))
\r
44 __preinit_array_end = .;
\r
45 __init_array_start = .;
\r
46 KEEP (*(SORT(.init_array.*)))
\r
47 KEEP (*(.init_array))
\r
48 __init_array_end = .;
\r
49 KEEP (*crtbegin.o(.ctors))
\r
50 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
\r
51 KEEP (*(SORT(.ctors.*)))
\r
52 KEEP (*crtend.o(.ctors))
\r
54 __fini_array_start = .;
\r
55 KEEP (*(.fini_array))
\r
56 KEEP (*(SORT(.fini_array.*)))
\r
57 __fini_array_end = .;
\r
59 KEEP (*crtbegin.o(.dtors))
\r
60 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
\r
61 KEEP (*(SORT(.dtors.*)))
\r
62 KEEP (*crtend.o(.dtors))
\r
64 /* Exception handling support */
\r
66 *(.ARM.extab* .gnu.linkonce.armextab.*)
\r
68 __extab_end = ABSOLUTE(.);
\r
71 /* Exception handling, exidx needs a dedicated section */
\r
72 .ARM.exidx ABSOLUTE(__extab_end): AT(__extab_end | 0x04000000)
\r
75 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
\r
77 __exidx_end = ABSOLUTE(.);
\r
80 /* CONST data section */
\r
81 .rodata ABSOLUTE(__exidx_end): AT(__exidx_end | 0x04000000)
\r
83 *(.rodata .rodata.*)
\r
89 /* End of RO-DATA and start of LOAD region for DATA */
\r
90 eROData = . | 0x04000000;
\r
92 /* DSRAM layout (Lowest to highest)*/
\r
93 /* Fully Descending Stack <-> BSS <-> DATA <-> HEAP */
\r
94 /* Dummy section for stack */
\r
98 __Xmc4400_stack = .;
\r
104 __Xmc4400_sBSS = .;
\r
108 *(.gnu.linkonce.b*)
\r
109 __Xmc4400_eBSS = ALIGN(4);
\r
111 /* Yes, the size must be kept outside */
\r
112 __Xmc4400_BSS_Size = __Xmc4400_eBSS - __Xmc4400_sBSS;
\r
114 /* Standard DATA and user defined DATA/BSS/CONST sections */
\r
115 .data ABSOLUTE(ALIGN(16)): AT(eROData)
\r
117 __Xmc4400_sData = .;
\r
121 *(.gnu.linkonce.d*)
\r
122 __Xmc4400_eData = ALIGN(4);
\r
124 /* Yes, the size must be kept outside */
\r
125 __Xmc4400_Data_Size = __Xmc4400_eData - __Xmc4400_sData;
\r
128 __Xmc4400_heap_start = ALIGN(8);
\r
129 __Xmc4400_heap_end = ORIGIN(SRAM_combined) + LENGTH (SRAM_combined);
\r
130 Heap_Bank1_Start = __Xmc4400_heap_start;
\r
131 Heap_Bank1_Size = __Xmc4400_heap_end - __Xmc4400_heap_start;
\r
132 Heap_Bank1_End = ABSOLUTE(__Xmc4400_heap_end);
\r
139 .stab 0 (NOLOAD) : { *(.stab) }
\r
140 .stabstr 0 (NOLOAD) : { *(.stabstr) }
\r
143 .debug 0 : { *(.debug) }
\r
144 .line 0 : { *(.line) }
\r
146 /* GNU DWARF 1 extensions */
\r
147 .debug_srcinfo 0 : { *(.debug_srcinfo) }
\r
148 .debug_sfnames 0 : { *(.debug_sfnames) }
\r
150 /* DWARF 1.1 and DWARF 2 */
\r
151 .debug_aranges 0 : { *(.debug_aranges) }
\r
152 .debug_pubnames 0 : { *(.debug_pubnames) }
\r
153 .debug_pubtypes 0 : { *(.debug_pubtypes) }
\r
156 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
\r
157 .debug_abbrev 0 : { *(.debug_abbrev) }
\r
158 .debug_line 0 : { *(.debug_line) }
\r
159 .debug_frame 0 : { *(.debug_frame) }
\r
160 .debug_str 0 : { *(.debug_str) }
\r
161 .debug_loc 0 : { *(.debug_loc) }
\r
162 .debug_macinfo 0 : { *(.debug_macinfo) }
\r
165 .debug_ranges 0 : { *(.debug_ranges) }
\r
167 /* SGI/MIPS DWARF 2 extensions */
\r
168 .debug_weaknames 0 : { *(.debug_weaknames) }
\r
169 .debug_funcnames 0 : { *(.debug_funcnames) }
\r
170 .debug_typenames 0 : { *(.debug_typenames) }
\r
171 .debug_varnames 0 : { *(.debug_varnames) }
\r
173 /* Build attributes */
\r
174 .build_attributes 0 : { *(.ARM.attributes) }
\r