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