1 /*Based on following file*/
3 * GENERATED FILE - DO NOT EDIT
4 * (c) Code Red Technologies Ltd, 2008-13
5 * (c) NXP Semiconductors 2013-2014
6 * Generated linker script file for LPC1549
7 * Created from generic_c.ld (LPCXpresso v7.2 (0 [Build 153] [2014-05-19] ))
8 * By LPCXpresso v7.2.0 [Build 153] [2014-05-19] on Tue Jun 10 00:20:53 JST 2014
11 GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
15 /* Define each memory region */
16 MFlash256 (rx) : ORIGIN = 0x0, LENGTH = 0x40000 /* 256K bytes */
17 Ram0_16 (rwx) : ORIGIN = 0x2000000+0x100, LENGTH = 0x4000-0x100 /* 16K bytes */
18 Ram1_16 (rwx) : ORIGIN = 0x2004000, LENGTH = 0x4000 /* 16K bytes */
19 Ram2_4 (rwx) : ORIGIN = 0x2008000, LENGTH = 0x1000 /* 4K bytes */
22 /* Define a symbol for the top of each memory region */
23 __top_MFlash256 = 0x0 + 0x40000;
24 __top_Ram0_16 = 0x2000000 + 0x4000;
25 __top_Ram1_16 = 0x2004000 + 0x4000;
26 __top_Ram2_4 = 0x2008000 + 0x1000;
33 /* MAIN TEXT SECTION */
39 /* Global Section Table */
41 __section_table_start = .;
42 __data_section_table = .;
43 LONG(LOADADDR(.data));
46 LONG(LOADADDR(.data_RAM2));
47 LONG( ADDR(.data_RAM2));
48 LONG( SIZEOF(.data_RAM2));
49 LONG(LOADADDR(.data_RAM3));
50 LONG( ADDR(.data_RAM3));
51 LONG( SIZEOF(.data_RAM3));
52 __data_section_table_end = .;
53 __bss_section_table = .;
56 LONG( ADDR(.bss_RAM2));
57 LONG( SIZEOF(.bss_RAM2));
58 LONG( ADDR(.bss_RAM3));
59 LONG( SIZEOF(.bss_RAM3));
60 __bss_section_table_end = .;
61 __section_table_end = . ;
62 /* End of Global Section Table */
71 /* C++ constructors etc */
76 __preinit_array_start = .;
77 KEEP (*(.preinit_array))
78 __preinit_array_end = .;
81 __init_array_start = .;
82 KEEP (*(SORT(.init_array.*)))
89 KEEP (*crtbegin.o(.ctors))
90 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
91 KEEP (*(SORT(.ctors.*)))
92 KEEP (*crtend.o(.ctors))
95 KEEP (*crtbegin.o(.dtors))
96 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
97 KEEP (*(SORT(.dtors.*)))
98 KEEP (*crtend.o(.dtors))
102 * for exception handling/unwind - some Newlib functions (in common
103 * with C++ and STDC++) use this.
105 .ARM.extab : ALIGN(4)
107 *(.ARM.extab* .gnu.linkonce.armextab.*)
111 .ARM.exidx : ALIGN(4)
113 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
119 /* DATA section for Ram1_16 */
120 .data_RAM2 : ALIGN(4)
128 } > Ram1_16 AT>MFlash256
130 /* DATA section for Ram2_4 */
131 .data_RAM3 : ALIGN(4)
139 } > Ram2_4 AT>MFlash256
141 /* MAIN DATA SECTION */
142 .uninit_RESERVED : ALIGN(4)
144 KEEP(*(.bss.$RESERVED*))
146 _end_uninit_RESERVED = .;
149 /* Main DATA section (Ram0_16) */
159 } > Ram0_16 AT>MFlash256
161 /* BSS section for Ram1_16 */
168 /* BSS section for Ram2_4 */
176 /* MAIN BSS SECTION */
188 /* NOINIT section for Ram1_16 */
189 .noinit_RAM2 (NOLOAD) : ALIGN(4)
195 /* NOINIT section for Ram2_4 */
196 .noinit_RAM3 (NOLOAD) : ALIGN(4)
203 /* DEFAULT NOINIT SECTION */
204 .noinit (NOLOAD): ALIGN(4)
212 PROVIDE(_pvHeapStart = .);
213 PROVIDE(_vStackTop = __top_Ram0_16 - 0);