initial commit
[armstart-ibdap] / build / IBDAP.ld
1 /*
2  * GENERATED FILE - DO NOT EDIT
3  * (c) Code Red Technologies Ltd, 2008-13
4  * (c) NXP Semiconductors 2013-2015
5  * Generated linker script file for LPC11U35/501
6  * Created from generic_c.ld (7.7.2 ())
7  * By LPCXpresso v7.7.2 [Build 379] [2015-03-31]  on Wed Jun 24 20:31:09 EDT 2015
8  */
9
10
11 INCLUDE "IBDAP_lib.ld"
12 INCLUDE "IBDAP_mem.ld"
13
14 ENTRY(ResetISR)
15
16 SECTIONS
17 {
18
19     /* MAIN TEXT SECTION */    
20     .text : ALIGN(4)
21     {
22         FILL(0xff)
23         __vectors_start__ = ABSOLUTE(.) ;
24         KEEP(*(.isr_vector))
25         
26         /* Global Section Table */
27         . = ALIGN(4) ;
28         __section_table_start = .;
29         __data_section_table = .;
30         LONG(LOADADDR(.data));
31         LONG(    ADDR(.data));
32         LONG(  SIZEOF(.data));
33         LONG(LOADADDR(.data_RAM2));
34         LONG(    ADDR(.data_RAM2));
35         LONG(  SIZEOF(.data_RAM2));
36         LONG(LOADADDR(.data_RAM3));
37         LONG(    ADDR(.data_RAM3));
38         LONG(  SIZEOF(.data_RAM3));
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         LONG(    ADDR(.bss_RAM3));
46         LONG(  SIZEOF(.bss_RAM3));
47         __bss_section_table_end = .;
48         __section_table_end = . ;
49         /* End of Global Section Table */
50         
51
52         *(.after_vectors*)
53         
54     } >MFlash64
55     
56     .text : ALIGN(4)    
57     {
58          *(.text*)
59         *(.rodata .rodata.* .constdata .constdata.*)
60         . = ALIGN(4);
61         
62     } > MFlash64
63
64     /*
65      * for exception handling/unwind - some Newlib functions (in common
66      * with C++ and STDC++) use this. 
67      */
68     .ARM.extab : ALIGN(4)
69     {
70         *(.ARM.extab* .gnu.linkonce.armextab.*)
71     } > MFlash64
72     __exidx_start = .;
73     
74     .ARM.exidx : ALIGN(4)
75     {
76         *(.ARM.exidx* .gnu.linkonce.armexidx.*)
77     } > MFlash64
78     __exidx_end = .;
79     
80     _etext = .;
81         
82     
83     /* DATA section for RamUsb2 */
84     .data_RAM2 : ALIGN(4)
85     {
86        FILL(0xff)
87        PROVIDE(__start_data_RAM2 = .) ;
88        *(.ramfunc.$RAM2)
89        *(.ramfunc.$RamUsb2)
90         *(.data.$RAM2*)
91         *(.data.$RamUsb2*)
92        . = ALIGN(4) ;
93        PROVIDE(__end_data_RAM2 = .) ;
94     } > RamUsb2 AT>MFlash64
95     
96     /* DATA section for SRAM1_2 */
97     .data_RAM3 : ALIGN(4)
98     {
99        FILL(0xff)
100        PROVIDE(__start_data_RAM3 = .) ;
101        *(.ramfunc.$RAM3)
102        *(.ramfunc.$SRAM1_2)
103         *(.data.$RAM3*)
104         *(.data.$SRAM1_2*)
105        . = ALIGN(4) ;
106        PROVIDE(__end_data_RAM3 = .) ;
107     } > SRAM1_2 AT>MFlash64
108     
109     /* MAIN DATA SECTION */
110     
111
112     .uninit_RESERVED : ALIGN(4)
113     {
114         KEEP(*(.bss.$RESERVED*))
115         . = ALIGN(4) ;
116         _end_uninit_RESERVED = .;
117     } > RamLoc8
118
119         
120         /* Main DATA section (RamLoc8) */
121         .data : ALIGN(4)
122         {
123            FILL(0xff)
124            _data = . ;
125            *(vtable)
126            *(.ramfunc*)
127            *(.data*)
128            . = ALIGN(4) ;
129            _edata = . ;
130         } > RamLoc8 AT>MFlash64
131
132     /* BSS section for RamUsb2 */
133     .bss_RAM2 : ALIGN(4)
134     {
135        PROVIDE(__start_bss_RAM2 = .) ;
136         *(.bss.$RAM2*)
137         *(.bss.$RamUsb2*)
138        . = ALIGN(4) ;
139        PROVIDE(__end_bss_RAM2 = .) ;
140     } > RamUsb2
141     /* BSS section for SRAM1_2 */
142     .bss_RAM3 : ALIGN(4)
143     {
144        PROVIDE(__start_bss_RAM3 = .) ;
145         *(.bss.$RAM3*)
146         *(.bss.$SRAM1_2*)
147        . = ALIGN(4) ;
148        PROVIDE(__end_bss_RAM3 = .) ;
149     } > SRAM1_2
150
151     /* MAIN BSS SECTION */
152     .bss : ALIGN(4)
153     {
154         _bss = .;
155         *(.bss*)
156         *(COMMON)
157         . = ALIGN(4) ;
158         _ebss = .;
159         PROVIDE(end = .);
160     } > RamLoc8
161         
162     /* NOINIT section for RamUsb2 */
163     .noinit_RAM2 (NOLOAD) : ALIGN(4)
164     {
165         *(.noinit.$RAM2*)
166         *(.noinit.$RamUsb2*)
167        . = ALIGN(4) ;
168     } > RamUsb2 
169     /* NOINIT section for SRAM1_2 */
170     .noinit_RAM3 (NOLOAD) : ALIGN(4)
171     {
172         *(.noinit.$RAM3*)
173         *(.noinit.$SRAM1_2*)
174        . = ALIGN(4) ;
175     } > SRAM1_2 
176     
177     /* DEFAULT NOINIT SECTION */
178     .noinit (NOLOAD): ALIGN(4)
179     {
180         _noinit = .;
181         *(.noinit*) 
182          . = ALIGN(4) ;
183         _end_noinit = .;
184     } > RamLoc8
185     
186     PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .);
187     PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc8 - 0);
188 }