]> 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_LPC11U37H_401/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_LPC11U37H_401 / 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 RamIo1 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x800 /* 2k */
12 RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
13 }
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;
19
20 ENTRY(ResetISR)
21
22 SECTIONS
23 {
24
25 /* MAIN TEXT SECTION */
26 .text : ALIGN(4)
27 {
28 FILL(0xff)
29 KEEP(*(.isr_vector))
30 *(.text.ResetISR)
31 . = 0x200;
32
33 /* Global Section Table */
34 . = ALIGN(4) ;
35 __section_table_start = .;
36 __data_section_table = .;
37 LONG(LOADADDR(.data));
38 LONG( ADDR(.data)) ;
39 LONG( SIZEOF(.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 = .;
45 LONG( ADDR(.bss));
46 LONG( SIZEOF(.bss));
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 */
52
53
54 *(.after_vectors*)
55
56 *(.text*)
57 *(.rodata .rodata.*)
58 . = ALIGN(4);
59
60 /* C++ constructors etc */
61 . = ALIGN(4);
62 KEEP(*(.init))
63
64 . = ALIGN(4);
65 __preinit_array_start = .;
66 KEEP (*(.preinit_array))
67 __preinit_array_end = .;
68
69 . = ALIGN(4);
70 __init_array_start = .;
71 KEEP (*(SORT(.init_array.*)))
72 KEEP (*(.init_array))
73 __init_array_end = .;
74
75 KEEP(*(.fini));
76
77 . = ALIGN(0x4);
78 KEEP (*crtbegin.o(.ctors))
79 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
80 KEEP (*(SORT(.ctors.*)))
81 KEEP (*crtend.o(.ctors))
82
83 . = ALIGN(0x4);
84 KEEP (*crtbegin.o(.dtors))
85 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
86 KEEP (*(SORT(.dtors.*)))
87 KEEP (*crtend.o(.dtors))
88 /* End C++ */
89 } > MFlash32
90
91 /*
92 * for exception handling/unwind - some Newlib functions (in common
93 * with C++ and STDC++) use this.
94 */
95 .ARM.extab : ALIGN(4)
96 {
97 *(.ARM.extab* .gnu.linkonce.armextab.*)
98 } > MFlash32
99 __exidx_start = .;
100
101 .ARM.exidx : ALIGN(4)
102 {
103 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
104 } > MFlash32
105 __exidx_end = .;
106
107 _etext = .;
108
109
110 .data_RAM2 : ALIGN(4)
111 {
112 FILL(0xff)
113 *(.data.$RAM2*)
114 *(.data.$RamUsb2*)
115 . = ALIGN(4) ;
116 } > RamUsb2 AT>MFlash32
117
118 /* MAIN DATA SECTION */
119
120 .uninit_RESERVED : ALIGN(4)
121 {
122 KEEP(*(.bss.$RESERVED*))
123 } > RamLoc8
124
125 .data : ALIGN(4)
126 {
127 FILL(0xff)
128 _data = .;
129 *(vtable)
130 *(.data*)
131 . = ALIGN(4) ;
132 _edata = .;
133 } > RamLoc8 AT>MFlash32
134
135
136 .bss_RAM2 : ALIGN(4)
137 {
138 *(.bss.$RAM2*)
139 *(.bss.$RamUsb2*)
140 . = ALIGN(4) ;
141 } > RamUsb2
142
143 /* MAIN BSS SECTION */
144 .bss : ALIGN(4)
145 {
146 _bss = .;
147 *(.bss*)
148 *(COMMON)
149 . = ALIGN(4) ;
150 _ebss = .;
151 PROVIDE(end = .);
152 __end__ = .;
153 } > RamLoc8
154
155 PROVIDE(_pvHeapStart = .);
156 PROVIDE(_vStackTop = __top_RamLoc8 - 0);
157 }
Imprint / Impressum