]> git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_CR/TARGET_LPC11U37_501/LPC11U37.ld
Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
[tmk_keyboard.git] / tmk_core / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC11UXX / TOOLCHAIN_GCC_CR / TARGET_LPC11U37_501 / LPC11U37.ld
1 /* mbed - LPC11U35 linker script
2 * Based linker script generated by Code Red Technologies Red Suite 4.1
3 */
4 GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
5
6 MEMORY
7 {
8 /* Define each memory region */
9 MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x20000 /* 128k */
10 RamLoc8 (rwx) : ORIGIN = 0x100000C0, LENGTH = 0x1F40 /* 8k */
11 RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
12 }
13 /* Define a symbol for the top of each memory region */
14 __top_MFlash32 = 0x0 + 0x10000;
15 __top_RamLoc8 = 0x10000000 + 0x1F40;
16 __top_RamUsb2 = 0x20004000 + 0x800;
17
18 ENTRY(ResetISR)
19
20 SECTIONS
21 {
22
23 /* MAIN TEXT SECTION */
24 .text : ALIGN(4)
25 {
26 FILL(0xff)
27 KEEP(*(.isr_vector))
28 *(.text.ResetISR)
29 . = 0x200;
30
31 /* Global Section Table */
32 . = ALIGN(4) ;
33 __section_table_start = .;
34 __data_section_table = .;
35 LONG(LOADADDR(.data));
36 LONG( ADDR(.data)) ;
37 LONG( SIZEOF(.data));
38 LONG(LOADADDR(.data_RAM2));
39 LONG( ADDR(.data_RAM2)) ;
40 LONG( SIZEOF(.data_RAM2));
41 __data_section_table_end = .;
42 __bss_section_table = .;
43 LONG( ADDR(.bss));
44 LONG( SIZEOF(.bss));
45 LONG( ADDR(.bss_RAM2));
46 LONG( SIZEOF(.bss_RAM2));
47 __bss_section_table_end = .;
48 __section_table_end = . ;
49 /* End of Global Section Table */
50
51
52 *(.after_vectors*)
53
54 *(.text*)
55 *(.rodata .rodata.*)
56 . = ALIGN(4);
57
58 /* C++ constructors etc */
59 . = ALIGN(4);
60 KEEP(*(.init))
61
62 . = ALIGN(4);
63 __preinit_array_start = .;
64 KEEP (*(.preinit_array))
65 __preinit_array_end = .;
66
67 . = ALIGN(4);
68 __init_array_start = .;
69 KEEP (*(SORT(.init_array.*)))
70 KEEP (*(.init_array))
71 __init_array_end = .;
72
73 KEEP(*(.fini));
74
75 . = ALIGN(0x4);
76 KEEP (*crtbegin.o(.ctors))
77 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
78 KEEP (*(SORT(.ctors.*)))
79 KEEP (*crtend.o(.ctors))
80
81 . = ALIGN(0x4);
82 KEEP (*crtbegin.o(.dtors))
83 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
84 KEEP (*(SORT(.dtors.*)))
85 KEEP (*crtend.o(.dtors))
86 /* End C++ */
87 } > MFlash32
88
89 /*
90 * for exception handling/unwind - some Newlib functions (in common
91 * with C++ and STDC++) use this.
92 */
93 .ARM.extab : ALIGN(4)
94 {
95 *(.ARM.extab* .gnu.linkonce.armextab.*)
96 } > MFlash32
97 __exidx_start = .;
98
99 .ARM.exidx : ALIGN(4)
100 {
101 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
102 } > MFlash32
103 __exidx_end = .;
104
105 _etext = .;
106
107
108 .data_RAM2 : ALIGN(4)
109 {
110 FILL(0xff)
111 *(.data.$RAM2*)
112 *(.data.$RamUsb2*)
113 . = ALIGN(4) ;
114 } > RamUsb2 AT>MFlash32
115
116 /* MAIN DATA SECTION */
117
118 .uninit_RESERVED : ALIGN(4)
119 {
120 KEEP(*(.bss.$RESERVED*))
121 } > RamLoc8
122
123 .data : ALIGN(4)
124 {
125 FILL(0xff)
126 _data = .;
127 *(vtable)
128 *(.data*)
129 . = ALIGN(4) ;
130 _edata = .;
131 } > RamLoc8 AT>MFlash32
132
133
134 .bss_RAM2 : ALIGN(4)
135 {
136 *(.bss.$RAM2*)
137 *(.bss.$RamUsb2*)
138 . = ALIGN(4) ;
139 } > RamUsb2
140
141 /* MAIN BSS SECTION */
142 .bss : ALIGN(4)
143 {
144 _bss = .;
145 *(.bss*)
146 *(COMMON)
147 . = ALIGN(4) ;
148 _ebss = .;
149 PROVIDE(end = .);
150 __end__ = .;
151 } > RamLoc8
152
153 PROVIDE(_pvHeapStart = .);
154 PROVIDE(_vStackTop = __top_RamLoc8 - 0);
155 }
Imprint / Impressum