]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_CR/TARGET_LPC11U37_501/LPC11U37.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_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 }