1 /* mbed - LPC11U35 linker script
2 * Based linker script generated by Code Red Technologies Red Suite 4.1
4 GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
8 /* Define each memory region */
9 MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x20000 /* 128k */
10 RamLoc8 (rwx) : ORIGIN = 0x100000C0, LENGTH = 0x1F40 /* 8k */
11 RamIo1 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x800 /* 2k */
12 RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
14 /* Define a symbol for the top of each memory region */
15 __top_MFlash32 = 0x0 + 0x10000;
16 __top_RamLoc8 = 0x10000000 + 0x1F40;
17 __top_RamIo1 = 0x20000000 + 0x800;
18 __top_RamUsb2 = 0x20004000 + 0x800;
25 /* MAIN TEXT SECTION */
33 /* Global Section Table */
35 __section_table_start = .;
36 __data_section_table = .;
37 LONG(LOADADDR(.data));
40 LONG(LOADADDR(.data_RAM2));
41 LONG( ADDR(.data_RAM2)) ;
42 LONG( SIZEOF(.data_RAM2));
43 __data_section_table_end = .;
44 __bss_section_table = .;
47 LONG( ADDR(.bss_RAM2));
48 LONG( SIZEOF(.bss_RAM2));
49 __bss_section_table_end = .;
50 __section_table_end = . ;
51 /* End of Global Section Table */
60 /* C++ constructors etc */
65 __preinit_array_start = .;
66 KEEP (*(.preinit_array))
67 __preinit_array_end = .;
70 __init_array_start = .;
71 KEEP (*(SORT(.init_array.*)))
78 KEEP (*crtbegin.o(.ctors))
79 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
80 KEEP (*(SORT(.ctors.*)))
81 KEEP (*crtend.o(.ctors))
84 KEEP (*crtbegin.o(.dtors))
85 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
86 KEEP (*(SORT(.dtors.*)))
87 KEEP (*crtend.o(.dtors))
92 * for exception handling/unwind - some Newlib functions (in common
93 * with C++ and STDC++) use this.
97 *(.ARM.extab* .gnu.linkonce.armextab.*)
101 .ARM.exidx : ALIGN(4)
103 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
110 .data_RAM2 : ALIGN(4)
116 } > RamUsb2 AT>MFlash32
118 /* MAIN DATA SECTION */
120 .uninit_RESERVED : ALIGN(4)
122 KEEP(*(.bss.$RESERVED*))
133 } > RamLoc8 AT>MFlash32
143 /* MAIN BSS SECTION */
155 PROVIDE(_pvHeapStart = .);
156 PROVIDE(_vStackTop = __top_RamLoc8 - 0);