]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_CR/TARGET_LPC11U24/LPC11U24.ld
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC11UXX / TOOLCHAIN_GCC_CR / TARGET_LPC11U24 / LPC11U24.ld
1 /* mbed - LPC11U24 linker script
2  * Based linker script generated by Code Red Technologies Red Suite 4.1
3  */
4 GROUP(libgcc.a libc.a libstdc++.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 = 0x8000 /* 32k */
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 + 0x8000;
15   __top_RamLoc8 = 0x10000000 + 0x2000;
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         
29         /* Global Section Table */
30         . = ALIGN(4) ;
31         __section_table_start = .;
32         __data_section_table = .;
33         LONG(LOADADDR(.data));
34         LONG(    ADDR(.data)) ;
35         LONG(  SIZEOF(.data));
36         LONG(LOADADDR(.data_RAM2));
37         LONG(    ADDR(.data_RAM2)) ;
38         LONG(  SIZEOF(.data_RAM2));
39         __data_section_table_end = .;
40         __bss_section_table = .;
41         LONG(    ADDR(.bss));
42         LONG(  SIZEOF(.bss));
43         LONG(    ADDR(.bss_RAM2));
44         LONG(  SIZEOF(.bss_RAM2));
45         __bss_section_table_end = .;
46         __section_table_end = . ;
47         /* End of Global Section Table */
48         
49
50         *(.after_vectors*)
51         
52         *(.text*)
53         *(.rodata .rodata.*)
54         . = ALIGN(4);
55         
56         /* C++ constructors etc */
57         . = ALIGN(4);
58         KEEP(*(.init))
59         
60         . = ALIGN(4);
61         __preinit_array_start = .;
62         KEEP (*(.preinit_array))
63         __preinit_array_end = .;
64         
65         . = ALIGN(4);
66         __init_array_start = .;
67         KEEP (*(SORT(.init_array.*)))
68         KEEP (*(.init_array))
69         __init_array_end = .;
70         
71         KEEP(*(.fini));
72         
73         . = ALIGN(0x4);
74         KEEP (*crtbegin.o(.ctors))
75         KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
76         KEEP (*(SORT(.ctors.*)))
77         KEEP (*crtend.o(.ctors))
78         
79         . = ALIGN(0x4);
80         KEEP (*crtbegin.o(.dtors))
81         KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
82         KEEP (*(SORT(.dtors.*)))
83         KEEP (*crtend.o(.dtors))
84         /* End C++ */
85     } > MFlash32
86
87     /*
88      * for exception handling/unwind - some Newlib functions (in common
89      * with C++ and STDC++) use this.
90      */
91     .ARM.extab : ALIGN(4)
92     {
93         *(.ARM.extab* .gnu.linkonce.armextab.*)
94     } > MFlash32
95     __exidx_start = .;
96     
97     .ARM.exidx : ALIGN(4)
98     {
99         *(.ARM.exidx* .gnu.linkonce.armexidx.*)
100     } > MFlash32
101     __exidx_end = .;
102     
103     _etext = .;
104         
105     
106     .data_RAM2 : ALIGN(4)
107     {
108        FILL(0xff)
109         *(.data.$RAM2*)
110         *(.data.$RamUsb2*)
111        . = ALIGN(4) ;
112     } > RamUsb2 AT>MFlash32
113     
114     /* MAIN DATA SECTION */
115
116     .uninit_RESERVED : ALIGN(4)
117     {
118         KEEP(*(.bss.$RESERVED*))
119     } > RamLoc8
120
121     .data : ALIGN(4)
122     {
123         FILL(0xff)
124         _data = .;
125         *(vtable)
126         *(.data*)
127         . = ALIGN(4) ;
128         _edata = .;
129     } > RamLoc8 AT>MFlash32
130
131     
132     .bss_RAM2 : ALIGN(4)
133     {
134         *(.bss.$RAM2*)
135         *(.bss.$RamUsb2*)
136        . = ALIGN(4) ;
137     } > RamUsb2
138
139     /* MAIN BSS SECTION */
140     .bss : ALIGN(4)
141     {
142         _bss = .;
143         *(.bss*)
144         *(COMMON)
145         . = ALIGN(4) ;
146         _ebss = .;
147         PROVIDE(end = .);
148         __end__ = .;
149     } > RamLoc8
150     
151     PROVIDE(_pvHeapStart = .);
152     PROVIDE(_vStackTop = __top_RamLoc8 - 0);
153 }