]> begriffs open source - cmsis-freertos/blob - Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lscript.ld
Update README.md - branch main is now the base branch
[cmsis-freertos] / Demo / CORTEX_A9_Zynq_ZC702 / RTOSDemo / src / lscript.ld
1 /*******************************************************************/
2 /*                                                                 */
3 /* This file is automatically generated by linker script generator.*/
4 /*                                                                 */
5 /* Version:                                 */
6 /*                                                                 */
7 /* Copyright (c) 2010 Xilinx, Inc.  All rights reserved.           */
8 /*                                                                 */
9 /* Description : Cortex-A9 Linker Script                          */
10 /*                                                                 */
11 /*******************************************************************/
12
13 _STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;
14 _HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x2000;
15
16 _ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
17 _SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
18 _IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
19 _FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
20 _UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
21
22 /* Define Memories in the system */
23
24 MEMORY
25 {
26    ps7_ddr_0_S_AXI_BASEADDR : ORIGIN = 0x100000, LENGTH = 0x3FF00000
27    ps7_qspi_linear_0_S_AXI_BASEADDR : ORIGIN = 0xFC000000, LENGTH = 0x1000000
28    ps7_ram_0_S_AXI_BASEADDR : ORIGIN = 0x0, LENGTH = 0x30000
29    ps7_ram_1_S_AXI_BASEADDR : ORIGIN = 0xFFFF0000, LENGTH = 0xFE00
30 }
31
32 /* Specify the default entry point to the program */
33
34 ENTRY(_vector_table)
35
36 /* Define the sections, and where they are mapped in memory */
37
38 SECTIONS
39 {
40 .text : {
41    *(.freertos_vectors)
42    *(.vectors)
43    *(.boot)
44    *(.text)
45    *(.text.*)
46    *(.gnu.linkonce.t.*)
47    *(.plt)
48    *(.gnu_warning)
49    *(.gcc_execpt_table)
50    *(.glue_7)
51    *(.glue_7t)
52    *(.vfp11_veneer)
53    *(.ARM.extab)
54    *(.gnu.linkonce.armextab.*)
55 } > ps7_ddr_0_S_AXI_BASEADDR
56
57 .init : {
58    KEEP (*(.init))
59 } > ps7_ddr_0_S_AXI_BASEADDR
60
61 .fini : {
62    KEEP (*(.fini))
63 } > ps7_ddr_0_S_AXI_BASEADDR
64
65 .rodata : {
66    __rodata_start = .;
67    *(.rodata)
68    *(.rodata.*)
69    *(.gnu.linkonce.r.*)
70    __rodata_end = .;
71 } > ps7_ddr_0_S_AXI_BASEADDR
72
73 .rodata1 : {
74    __rodata1_start = .;
75    *(.rodata1)
76    *(.rodata1.*)
77    __rodata1_end = .;
78 } > ps7_ddr_0_S_AXI_BASEADDR
79
80 .sdata2 : {
81    __sdata2_start = .;
82    *(.sdata2)
83    *(.sdata2.*)
84    *(.gnu.linkonce.s2.*)
85    __sdata2_end = .;
86 } > ps7_ddr_0_S_AXI_BASEADDR
87
88 .sbss2 : {
89    __sbss2_start = .;
90    *(.sbss2)
91    *(.sbss2.*)
92    *(.gnu.linkonce.sb2.*)
93    __sbss2_end = .;
94 } > ps7_ddr_0_S_AXI_BASEADDR
95
96 .data : {
97    __data_start = .;
98    *(.data)
99    *(.data.*)
100    *(.gnu.linkonce.d.*)
101    *(.jcr)
102    *(.got)
103    *(.got.plt)
104    __data_end = .;
105 } > ps7_ddr_0_S_AXI_BASEADDR
106
107 .data1 : {
108    __data1_start = .;
109    *(.data1)
110    *(.data1.*)
111    __data1_end = .;
112 } > ps7_ddr_0_S_AXI_BASEADDR
113
114 .got : {
115    *(.got)
116 } > ps7_ddr_0_S_AXI_BASEADDR
117
118 .ctors : {
119    __CTOR_LIST__ = .;
120    ___CTORS_LIST___ = .;
121    KEEP (*crtbegin.o(.ctors))
122    KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
123    KEEP (*(SORT(.ctors.*)))
124    KEEP (*(.ctors))
125    __CTOR_END__ = .;
126    ___CTORS_END___ = .;
127 } > ps7_ddr_0_S_AXI_BASEADDR
128
129 .dtors : {
130    __DTOR_LIST__ = .;
131    ___DTORS_LIST___ = .;
132    KEEP (*crtbegin.o(.dtors))
133    KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
134    KEEP (*(SORT(.dtors.*)))
135    KEEP (*(.dtors))
136    __DTOR_END__ = .;
137    ___DTORS_END___ = .;
138 } > ps7_ddr_0_S_AXI_BASEADDR
139
140 .fixup : {
141    __fixup_start = .;
142    *(.fixup)
143    __fixup_end = .;
144 } > ps7_ddr_0_S_AXI_BASEADDR
145
146 .eh_frame : {
147    *(.eh_frame)
148 } > ps7_ddr_0_S_AXI_BASEADDR
149
150 .eh_framehdr : {
151    __eh_framehdr_start = .;
152    *(.eh_framehdr)
153    __eh_framehdr_end = .;
154 } > ps7_ddr_0_S_AXI_BASEADDR
155
156 .gcc_except_table : {
157    *(.gcc_except_table)
158 } > ps7_ddr_0_S_AXI_BASEADDR
159
160 .mmu_tbl (ALIGN(16384)) : {
161    __mmu_tbl_start = .;
162    *(.mmu_tbl)
163    __mmu_tbl_end = .;
164 } > ps7_ddr_0_S_AXI_BASEADDR
165
166 .ARM.exidx : {
167    __exidx_start = .;
168    *(.ARM.exidx*)
169    *(.gnu.linkonce.armexidix.*.*)
170    __exidx_end = .;
171 } > ps7_ddr_0_S_AXI_BASEADDR
172
173 .preinit_array : {
174    __preinit_array_start = .;
175    KEEP (*(SORT(.preinit_array.*)))
176    KEEP (*(.preinit_array))
177    __preinit_array_end = .;
178 } > ps7_ddr_0_S_AXI_BASEADDR
179
180 .init_array : {
181    __init_array_start = .;
182    KEEP (*(SORT(.init_array.*)))
183    KEEP (*(.init_array))
184    __init_array_end = .;
185 } > ps7_ddr_0_S_AXI_BASEADDR
186
187 .fini_array : {
188    __fini_array_start = .;
189    KEEP (*(SORT(.fini_array.*)))
190    KEEP (*(.fini_array))
191    __fini_array_end = .;
192 } > ps7_ddr_0_S_AXI_BASEADDR
193
194 .ARM.attributes : {
195    __ARM.attributes_start = .;
196    *(.ARM.attributes)
197    __ARM.attributes_end = .;
198 } > ps7_ddr_0_S_AXI_BASEADDR
199
200 .sdata : {
201    __sdata_start = .;
202    *(.sdata)
203    *(.sdata.*)
204    *(.gnu.linkonce.s.*)
205    __sdata_end = .;
206 } > ps7_ddr_0_S_AXI_BASEADDR
207
208 .sbss (NOLOAD) : {
209    __sbss_start = .;
210    *(.sbss)
211    *(.sbss.*)
212    *(.gnu.linkonce.sb.*)
213    __sbss_end = .;
214 } > ps7_ddr_0_S_AXI_BASEADDR
215
216 .tdata : {
217    __tdata_start = .;
218    *(.tdata)
219    *(.tdata.*)
220    *(.gnu.linkonce.td.*)
221    __tdata_end = .;
222 } > ps7_ddr_0_S_AXI_BASEADDR
223
224 .tbss : {
225    __tbss_start = .;
226    *(.tbss)
227    *(.tbss.*)
228    *(.gnu.linkonce.tb.*)
229    __tbss_end = .;
230 } > ps7_ddr_0_S_AXI_BASEADDR
231
232 .bss (NOLOAD) : {
233    __bss_start = .;
234    *(.bss)
235    *(.bss.*)
236    *(.gnu.linkonce.b.*)
237    *(COMMON)
238    __bss_end = .;
239 } > ps7_ddr_0_S_AXI_BASEADDR
240
241 _SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
242
243 _SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
244
245 /* Generate Stack and Heap definitions */
246
247 .heap (NOLOAD) : {
248    . = ALIGN(16);
249    _heap = .;
250    HeapBase = .;
251    _heap_start = .;
252    . += _HEAP_SIZE;
253    _heap_end = .;
254    HeapLimit = .;
255 } > ps7_ddr_0_S_AXI_BASEADDR
256
257 .stack (NOLOAD) : {
258    . = ALIGN(16);
259    _stack_end = .;
260    . += _STACK_SIZE;
261    . = ALIGN(16);
262    _stack = .;
263    __stack = _stack;
264    . = ALIGN(16);
265    _irq_stack_end = .;
266    . += _IRQ_STACK_SIZE;
267    . = ALIGN(16);
268    __irq_stack = .;
269    _supervisor_stack_end = .;
270    . += _SUPERVISOR_STACK_SIZE;
271    . = ALIGN(16);
272    __supervisor_stack = .;
273    _abort_stack_end = .;
274    . += _ABORT_STACK_SIZE;
275    . = ALIGN(16);
276    __abort_stack = .;
277    _fiq_stack_end = .;
278    . += _FIQ_STACK_SIZE;
279    . = ALIGN(16);
280    __fiq_stack = .;
281    _undef_stack_end = .;
282    . += _UNDEF_STACK_SIZE;
283    . = ALIGN(16);
284    __undef_stack = .;
285 } > ps7_ddr_0_S_AXI_BASEADDR
286
287 _end = .;
288 }
289