]> git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC408X/TOOLCHAIN_GCC_CR/LPC407x_8x.ld
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[tmk_keyboard.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC408X / TOOLCHAIN_GCC_CR / LPC407x_8x.ld
1 /*
2 * GENERATED FILE - DO NOT EDIT
3 * (C) Code Red Technologies Ltd, 2008-2013
4 * Generated linker script file for LPC4088
5 * Created from generic_c.ld (vLPCXpresso v5.1 (2 [Build 2065] [2013-02-20] ))
6 * By LPCXpresso v5.1.2 [Build 2065] [2013-02-20] on Wed Apr 17 14:50:07 CEST 2013
7 */
8
9
10 GROUP(libgcc.a libc.a libstdc++.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
11
12 MEMORY
13 {
14 /* Define each memory region */
15 MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512k */
16 RamLoc64 (rwx) : ORIGIN = 0x100000E8, LENGTH = 0xFF18 /* 64k */
17 RamPeriph32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */
18
19 }
20 /* Define a symbol for the top of each memory region */
21 __top_MFlash512 = 0x0 + 0x80000;
22 __top_RamLoc64 = 0x10000000 + 0x10000;
23 __top_RamPeriph32 = 0x20000000 + 0x8000;
24
25 ENTRY(ResetISR)
26
27 SECTIONS
28 {
29
30 /* MAIN TEXT SECTION */
31 .text : ALIGN(4)
32 {
33 FILL(0xff)
34 KEEP(*(.isr_vector))
35
36 /* Global Section Table */
37 . = ALIGN(4) ;
38 __section_table_start = .;
39 __data_section_table = .;
40 LONG(LOADADDR(.data));
41 LONG( ADDR(.data)) ;
42 LONG( SIZEOF(.data));
43 LONG(LOADADDR(.data_RAM2));
44 LONG( ADDR(.data_RAM2)) ;
45 LONG( SIZEOF(.data_RAM2));
46 __data_section_table_end = .;
47 __bss_section_table = .;
48 LONG( ADDR(.bss));
49 LONG( SIZEOF(.bss));
50 LONG( ADDR(.bss_RAM2));
51 LONG( SIZEOF(.bss_RAM2));
52 __bss_section_table_end = .;
53 __section_table_end = . ;
54 /* End of Global Section Table */
55
56
57 *(.after_vectors*)
58
59 *(.text*)
60 *(.rodata .rodata.*)
61 . = ALIGN(4);
62
63 /* C++ constructors etc */
64 . = ALIGN(4);
65 KEEP(*(.init))
66
67 . = ALIGN(4);
68 __preinit_array_start = .;
69 KEEP (*(.preinit_array))
70 __preinit_array_end = .;
71
72 . = ALIGN(4);
73 __init_array_start = .;
74 KEEP (*(SORT(.init_array.*)))
75 KEEP (*(.init_array))
76 __init_array_end = .;
77
78 KEEP(*(.fini));
79
80 . = ALIGN(4);
81 KEEP (*crtbegin.o(.ctors))
82 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
83 KEEP (*(SORT(.ctors.*)))
84 KEEP (*crtend.o(.ctors))
85
86 . = ALIGN(4);
87 KEEP (*crtbegin.o(.dtors))
88 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
89 KEEP (*(SORT(.dtors.*)))
90 KEEP (*crtend.o(.dtors))
91 /* End C++ */
92 } > MFlash512
93
94 /*
95 * for exception handling/unwind - some Newlib functions (in common
96 * with C++ and STDC++) use this.
97 */
98 .ARM.extab : ALIGN(4)
99 {
100 *(.ARM.extab* .gnu.linkonce.armextab.*)
101 } > MFlash512
102 __exidx_start = .;
103
104 .ARM.exidx : ALIGN(4)
105 {
106 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
107 } > MFlash512
108 __exidx_end = .;
109
110 _etext = .;
111
112
113 /* DATA section for RamPeriph32 */
114 .data_RAM2 : ALIGN(4)
115 {
116 FILL(0xff)
117 *(.data.$RAM2*)
118 *(.data.$RamPeriph32*)
119 . = ALIGN(4) ;
120 } > RamPeriph32 AT>MFlash512
121
122 /* MAIN DATA SECTION */
123
124
125 .uninit_RESERVED : ALIGN(4)
126 {
127 KEEP(*(.bss.$RESERVED*))
128 . = ALIGN(4) ;
129 _end_uninit_RESERVED = .;
130 } > RamLoc64
131
132 .data : ALIGN(4)
133 {
134 FILL(0xff)
135 _data = .;
136 *(vtable)
137 *(.data*)
138 . = ALIGN(4) ;
139 _edata = .;
140 } > RamLoc64 AT>MFlash512
141
142 /* BSS section for RamPeriph32 */
143 .bss_RAM2 : ALIGN(4)
144 {
145 *(.bss.$RAM2*)
146 *(.bss.$RamPeriph32*)
147 . = ALIGN(4) ;
148 } > RamPeriph32
149
150 /* MAIN BSS SECTION */
151 .bss : ALIGN(4)
152 {
153 _bss = .;
154 *(.bss*)
155 *(COMMON)
156 . = ALIGN(4) ;
157 _ebss = .;
158 PROVIDE(end = .);
159 __end__ = .;
160 } > RamLoc64
161
162 /* NOINIT section for RamPeriph32 */
163 .noinit_RAM2 (NOLOAD) : ALIGN(4)
164 {
165 *(.noinit.$RAM2*)
166 *(.noinit.$RamPeriph32*)
167 . = ALIGN(4) ;
168 } > RamPeriph32
169
170 /* DEFAULT NOINIT SECTION */
171 .noinit (NOLOAD): ALIGN(4)
172 {
173 _noinit = .;
174 *(.noinit*)
175 . = ALIGN(4) ;
176 _end_noinit = .;
177 } > RamLoc64
178
179 PROVIDE(_pvHeapStart = .);
180 PROVIDE(_vStackTop = __top_RamLoc64 - 0);
181 }
Imprint / Impressum