comparison BootLoader/CPU1-F429_boot.ld @ 869:4e10a3e087a1 Evo_2_23

Reactivate Bootloader: The bootloader has not been compiled for a long time. Changes were necessary to catch up with the actual code
author Ideenmodellierer
date Mon, 12 Aug 2024 22:23:03 +0200
parents
children
comparison
equal deleted inserted replaced
868:db92692c014f 869:4e10a3e087a1
1 /*****************************************************************************
2 * -*- coding: UTF-8 -*-
3 *
4 * \file Common/CPU1-F429.ld
5 * \brief Linker Script for CPU1 alias Discovery
6 * \author Ac6 workbench, Heinrichs Weikamp, and JD Gascuel
7 * \date 2018
8 *
9 * \details
10 * Linker script for STM32F429IIT6 Device from STM32F4 series
11 * - 192Kbytes RAM
12 * - 2048Kbytes ROM
13 *
14 * Set heap size, stack size and stack location according
15 * to application requirements.
16 *
17 * Set memory bank area and size if external memory is used.
18 *
19 * $Id$
20 *****************************************************************************
21 * \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
22 *
23 * This program is free software: you can redistribute it and/or modify
24 * it under the terms of the GNU General Public License as published by
25 * the Free Software Foundation, either version 3 of the License, or
26 * (at your option) any later version.
27 *
28 * This program is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 * GNU General Public License for more details.
32 *
33 * You should have received a copy of the GNU General Public License
34 * along with this program. If not, see <http://www.gnu.org/licenses/>.
35 *****************************************************************************
36 * HISTORY
37 * 2017-12-18 jDG: Mix between std AC6 file and chw stm32f429zi_flash.ld settings.
38 */
39
40 /* Entry Point */
41 ENTRY(Reset_Handler)
42
43 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
44 OUTPUT_ARCH(arm)
45 SEARCH_DIR(.)
46
47 /****************************************************************************/
48 /***************************** Memory Definition ****************************/
49 MEMORY
50 {
51 ROM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 0x00040000 /* 256K */
52 ROM (rx) : ORIGIN = 0x08040000, LENGTH = 0x00090000 /* 576K */
53 UPPER(rx) : ORIGIN = 0x08132000, LENGTH = 0xAE270 /* 713K */
54 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K
55 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
56 }
57
58 /* Linker file shall be shared between Bootloader, Font and Firmware projects. Not used memory areas to be cut during bin generation */
59
60 /* Make sure ROM and UPPER are contiguous, and map 2MB */
61 /* TODO: At the moment the size of the defined memory will be directly reflected into the file size of resultion bin => Keep small until not used memory may be excluded from build */
62 /*ASSERT( ORIGIN(UPPER) - ORIGIN(ROM) == LENGTH(ROM), "ROM lower and upper region shall be continuous" )
63 /*ASSERT( LENGTH(ROM) + LENGTH(UPPER) == 2048K, "ROM lower + upper regions = 2MB" ) */
64
65 /* Highest address of the user mode stack */
66 /*_estack = ORIGIN(RAM) + LENGTH(RAM);*/
67
68
69 _Min_Heap_Size = 0; /* no required heap (malloc'ed space) */
70 _Min_Stack_Size = 0x08000; /* required 32K of stack */
71
72 /* Linker script to place sections and symbol values. Should be used together
73 * with other linker script that defines memory regions FLASH and RAM.
74 * It references following symbols, which must be defined in code:
75 * Reset_Handler : Entry of reset handler
76 *
77 * It defines following symbols, which code can use without definition:
78 * __exidx_start
79 * __exidx_end
80 * __preinit_array_start
81 * __preinit_array_end
82 * __init_array_start
83 * __init_array_end
84 * __fini_array_start
85 * __fini_array_end
86 * _sbss
87 * __bss_start__
88 * _ebss
89 * __bss_end__
90 * _edata
91 * end
92 * _end
93 * _estack
94 */
95
96 /****************************************************************************/
97 /*************************** Code and Data Sections *************************/
98 SECTIONS
99 {
100 /******************* NVIC reset and interupt vectors **********************/
101
102 .isr_vector 0x08000000 :
103 {
104 . = ALIGN(4);
105 KEEP( *(.isr_vector) )
106 KEEP(*(.init))
107 } >ROM_BOOT
108
109
110 .StdLibs 0x08000200:
111 {
112 . = ALIGN(4);
113 *libm.a:*(*)
114 } >ROM_BOOT
115
116 .rodata :
117 {
118 . = ALIGN(4);
119 *(.rodata) /* .rodata sections (constants, strings, etc.) */
120 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
121 . = ALIGN(4);
122 } >ROM_BOOT
123
124 /********************** Constant data into ROM memory *********************/
125
126
127 .ARM.extab : {
128 . = ALIGN(4);
129 *(.ARM.extab* .gnu.linkonce.armextab.*)
130 . = ALIGN(4);
131 } >ROM_BOOT
132
133 .ARM : {
134 . = ALIGN(4);
135 __exidx_start = .;
136 *(.ARM.exidx*)
137 __exidx_end = .;
138 . = ALIGN(4);
139 } >ROM_BOOT
140
141 .preinit_array :
142 {
143 . = ALIGN(4);
144 PROVIDE_HIDDEN( __preinit_array_start = . );
145 KEEP( *(.preinit_array*) )
146 PROVIDE_HIDDEN( __preinit_array_end = . );
147 . = ALIGN(4);
148 } >ROM_BOOT
149
150 .init_array :
151 {
152 . = ALIGN(4);
153 PROVIDE_HIDDEN( __init_array_start = . );
154 KEEP( *(SORT(.init_array.*)) )
155 KEEP( *(.init_array*) )
156 PROVIDE_HIDDEN( __init_array_end = . );
157 . = ALIGN(4);
158 } >ROM_BOOT
159
160 .fini_array :
161 {
162 . = ALIGN(4);
163 PROVIDE_HIDDEN( __fini_array_start = . );
164 KEEP( *(SORT(.fini_array.*)) )
165 KEEP( *(.fini_array*) )
166 PROVIDE_HIDDEN( __fini_array_end = . );
167 . = ALIGN(4);
168 } >ROM_BOOT
169
170 /************* The program code and other data into ROM memory ************/
171
172 /*
173 .firmware_FirmwareData 0x08050000 : {
174 KEEP( *(.firmware_firmware_data) )
175 } >ROM
176
177 .font_firmware_data 0x08132000 : {
178 KEEP( *(.font_firmware_data) )
179
180 } >UPPER
181 */
182
183 /************* Data and Structures at absolute address in ROM *************/
184
185 /* FIXME: this sets the SFirmwareData structure, not the code ... */
186 .bootloader_firmware_data 0x0800A000 : {
187 PROVIDE( bootloader_FirmwareData = . );
188 KEEP( *(.bootloader_firmware_data) )
189 } > ROM_BOOT
190
191
192
193 .text 0x08001000 :
194 {
195 . = ALIGN(4);
196 *(.text.HAL*)
197 . = ALIGN(4);
198 } >ROM_BOOT
199
200
201 .text2 0x0800A100 :
202 {
203 . = ALIGN(4);
204 *(.text) /* .text sections (code) */
205 *(.text*) /* .text* sections (code) */
206 *(.glue_7) /* glue arm to thumb code */
207 *(.glue_7t) /* glue thumb to arm code */
208 *(.eh_frame)
209 . = ALIGN(4);
210 _etext = .; /* define a global symbols at end of code */
211 } >ROM_BOOT
212
213
214
215 /* Define Known Address for Each Font */
216 /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */
217
218 .lower_fonts 0x08016000 : {
219 *(.lower_fonts.image_data_*)
220 *(.lower_fonts.*)
221 *(.upper_fonts.image_data_FontT48*)
222 *(.upper_fonts.FontT48*)
223 *(.upper_fonts.image_data_FontT24*)
224 *(.upper_fonts.FontT24*)
225 } > ROM_BOOT
226
227 .lower_directory 0x08004000 : {
228 *(.lower_font_directory*)
229 *(.upper_font_directory.FontT48*)
230 *(.upper_font_directory.FontT24*)
231 } > ROM_BOOT
232
233
234 .lower_image 0x08009000 : {
235 *(.lower_image*)
236
237 } > ROM_BOOT
238
239 .lower_directory 0x08009500 : {
240 *(.lower_image_directory*)
241 } > ROM_BOOT
242
243 .upper_fonts 0x08132040 : {
244 __upper_font_data = .;
245 . = 0x13E;
246 *(.upper_fonts.image_data_FontT144_0x0030)
247 . = 0x02515;
248 *(.upper_fonts.image_data_FontT144_0x0031)
249 . = 0x03469;
250 *(.upper_fonts.image_data_FontT144_0x0032)
251 . = 0x4FDC;
252 *(.upper_fonts.image_data_FontT144_0x0033)
253 . = 0x6862;
254 *(.upper_fonts.image_data_FontT144_0x0034)
255 . = 0x86C2;
256 *(.upper_fonts.image_data_FontT144_0x0035)
257 . = 0x9FB3;
258 *(.upper_fonts.image_data_FontT144_0x0036)
259 . = 0xBB26;
260 *(.upper_fonts.image_data_FontT144_0x0037)
261 . = 0xD845;
262 *(.upper_fonts.image_data_FontT144_0x0038)
263 . = 0xF34D;
264 *(.upper_fonts.image_data_FontT144_0x0039)
265 . = 0x10EC0;
266 *(.upper_fonts.image_data_FontT24_0x0020)
267 *(.upper_fonts.image_data_FontT24_0x0021)
268 *(.upper_fonts.image_data_FontT24_0x0022)
269 *(.upper_fonts.image_data_FontT24_0x0023)
270 *(.upper_fonts.image_data_FontT24_0x0024)
271 *(.upper_fonts.image_data_FontT24_0x0025)
272 *(.upper_fonts.image_data_FontT24_0x0026)
273 *(.upper_fonts.image_data_FontT24_0x0027)
274 *(.upper_fonts.image_data_FontT24_0x0028)
275 *(.upper_fonts.image_data_FontT24_0x0029)
276 *(.upper_fonts.image_data_FontT24_0x002a)
277 *(.upper_fonts.image_data_FontT24_0x003f)
278 *(.upper_fonts.image_data_FontT24_0x002c)
279 *(.upper_fonts.image_data_FontT24_0x002d)
280 *(.upper_fonts.image_data_FontT24_0x002e)
281 *(.upper_fonts.image_data_FontT24_0x002f)
282 *(.upper_fonts.image_data_FontT24_0x0030)
283 *(.upper_fonts.image_data_FontT24_0x0031)
284 *(.upper_fonts.image_data_FontT24_0x0032)
285 *(.upper_fonts.image_data_FontT24_0x0033)
286 *(.upper_fonts.image_data_FontT24_0x0034)
287 *(.upper_fonts.image_data_FontT24_0x0035)
288 *(.upper_fonts.image_data_FontT24_0x0036)
289 *(.upper_fonts.image_data_FontT24_0x0037)
290 *(.upper_fonts.image_data_FontT24_0x0038)
291 *(.upper_fonts.image_data_FontT24_0x0039)
292 *(.upper_fonts.image_data_FontT24_0x003a)
293 *(.upper_fonts.image_data_FontT24_0x003b)
294 *(.upper_fonts.image_data_FontT24_0x003c)
295 *(.upper_fonts.image_data_FontT24_0x003d)
296 *(.upper_fonts.image_data_FontT24_0x003e)
297 . = . + 0x8c;
298 *(.upper_fonts.image_data_FontT24_0x0040)
299 *(.upper_fonts.image_data_FontT24_0x0041)
300 *(.upper_fonts.image_data_FontT24_0x0042)
301 *(.upper_fonts.image_data_FontT24_0x0043)
302 *(.upper_fonts.image_data_FontT24_0x0044)
303 *(.upper_fonts.image_data_FontT24_0x0045)
304 *(.upper_fonts.image_data_FontT24_0x0046)
305 *(.upper_fonts.image_data_FontT24_0x0047)
306 *(.upper_fonts.image_data_FontT24_0x0048)
307 *(.upper_fonts.image_data_FontT24_0x0049)
308 *(.upper_fonts.image_data_FontT24_0x004a)
309 *(.upper_fonts.image_data_FontT24_0x004b)
310 *(.upper_fonts.image_data_FontT24_0x004c)
311 *(.upper_fonts.image_data_FontT24_0x004d)
312 *(.upper_fonts.image_data_FontT24_0x004e)
313 *(.upper_fonts.image_data_FontT24_0x004f)
314 *(.upper_fonts.image_data_FontT24_0x0050)
315 *(.upper_fonts.image_data_FontT24_0x0051)
316 *(.upper_fonts.image_data_FontT24_0x0052)
317 *(.upper_fonts.image_data_FontT24_0x0053)
318 *(.upper_fonts.image_data_FontT24_0x0054)
319 *(.upper_fonts.image_data_FontT24_0x0055)
320 *(.upper_fonts.image_data_FontT24_0x0056)
321 *(.upper_fonts.image_data_FontT24_0x0057)
322 *(.upper_fonts.image_data_FontT24_0x0058)
323 *(.upper_fonts.image_data_FontT24_0x0059)
324 *(.upper_fonts.image_data_FontT24_0x005a)
325 *(.upper_fonts.image_data_FontT24_0x005b)
326 *(.upper_fonts.image_data_FontT24_0x005c)
327 *(.upper_fonts.image_data_FontT24_0x005d)
328 *(.upper_fonts.image_data_FontT24_0x005e)
329 *(.upper_fonts.image_data_FontT24_0x005f)
330 *(.upper_fonts.image_data_FontT24_0x0060)
331 *(.upper_fonts.image_data_FontT24_0x0061)
332 *(.upper_fonts.image_data_FontT24_0x0062)
333 *(.upper_fonts.image_data_FontT24_0x0063)
334 . = . + 0x1c;
335 *(.upper_fonts.image_data_FontT24_0x0064)
336 *(.upper_fonts.image_data_FontT24_0x0065)
337 *(.upper_fonts.image_data_FontT24_0x0066)
338 *(.upper_fonts.image_data_FontT24_0x0067)
339 *(.upper_fonts.image_data_FontT24_0x0068)
340 *(.upper_fonts.image_data_FontT24_0x0069)
341 *(.upper_fonts.image_data_FontT24_0x006a)
342 *(.upper_fonts.image_data_FontT24_0x006b)
343 *(.upper_fonts.image_data_FontT24_0x006c)
344 *(.upper_fonts.image_data_FontT24_0x006d)
345 *(.upper_fonts.image_data_FontT24_0x006e)
346 *(.upper_fonts.image_data_FontT24_0x006f)
347 *(.upper_fonts.image_data_FontT24_0x0070)
348 *(.upper_fonts.image_data_FontT24_0x0071)
349 *(.upper_fonts.image_data_FontT24_0x0072)
350 *(.upper_fonts.image_data_FontT24_0x0073)
351 *(.upper_fonts.image_data_FontT24_0x0074)
352 *(.upper_fonts.image_data_FontT24_0x0075)
353 *(.upper_fonts.image_data_FontT24_0x0076)
354 *(.upper_fonts.image_data_FontT24_0x0077)
355 *(.upper_fonts.image_data_FontT24_0x0078)
356 *(.upper_fonts.image_data_FontT24_0x0079)
357 *(.upper_fonts.image_data_FontT24_0x007a)
358 *(.upper_fonts.image_data_FontT24_0x007b)
359 *(.upper_fonts.image_data_FontT24_0x007c)
360 . = . + 0x1c;
361 *(.upper_fonts.image_data_FontT24_0x007d)
362 *(.upper_fonts.image_data_FontT24_0x007e)
363 *(.upper_fonts.image_data_FontT24_0x00a1)
364 *(.upper_fonts.image_data_FontT24_0x00bf)
365 *(.upper_fonts.image_data_FontT24_0x00c1)
366 *(.upper_fonts.image_data_FontT24_0x00c4)
367 *(.upper_fonts.image_data_FontT24_0x00c6)
368 *(.upper_fonts.image_data_FontT24_0x00c7)
369 *(.upper_fonts.image_data_FontT24_0x00c9)
370 *(.upper_fonts.image_data_FontT24_0x00cd)
371 *(.upper_fonts.image_data_FontT24_0x00d1)
372 *(.upper_fonts.image_data_FontT24_0x00d3)
373 *(.upper_fonts.image_data_FontT24_0x00d6)
374 *(.upper_fonts.image_data_FontT24_0x00da)
375 *(.upper_fonts.image_data_FontT24_0x00dc)
376 *(.upper_fonts.image_data_FontT24_0x00df)
377 *(.upper_fonts.image_data_FontT24_0x00e0)
378 *(.upper_fonts.image_data_FontT24_0x00e1)
379 *(.upper_fonts.image_data_FontT24_0x00e2)
380 *(.upper_fonts.image_data_FontT24_0x00e4)
381 *(.upper_fonts.image_data_FontT24_0x00e6)
382 *(.upper_fonts.image_data_FontT24_0x00e7)
383 *(.upper_fonts.image_data_FontT24_0x00e8)
384 *(.upper_fonts.image_data_FontT24_0x00e9)
385 *(.upper_fonts.image_data_FontT24_0x00ec)
386 *(.upper_fonts.image_data_FontT24_0x00ed)
387 *(.upper_fonts.image_data_FontT24_0x00f0)
388 *(.upper_fonts.image_data_FontT24_0x00f1)
389 *(.upper_fonts.image_data_FontT24_0x00f2)
390 *(.upper_fonts.image_data_FontT24_0x00f3)
391 *(.upper_fonts.image_data_FontT24_0x00f6)
392 *(.upper_fonts.image_data_FontT24_0x00f9)
393 *(.upper_fonts.image_data_FontT24_0x00fa)
394 *(.upper_fonts.image_data_FontT24_0x00fc)
395 *(.upper_fonts.image_data_FontT24_0x00ff)
396 *(.upper_fonts.image_data_FontT24_0x0152)
397 *(.upper_fonts.image_data_FontT24_0x0153)
398 *(.upper_fonts.image_data_FontT24_0x0178)
399 *(.upper_fonts.image_data_FontT24_0x002b)
400 . = . + 0x1d642;
401 *(.upper_images.image_data_ostc_fuer_Tauchcomputer_240px)
402 *(.upper_fonts.image_data_FontT84_0x002e)
403 . = . + 0x9f;
404 *(.upper_fonts.image_data_FontT84_0x0030)
405 . = . + 0x0d;
406 *(.upper_fonts.image_data_FontT84_0x0031)
407 . = . + 0xaa;
408 *(.upper_fonts.image_data_FontT84_0x0032)
409 . = . + 0x7b;
410 *(.upper_fonts.image_data_FontT84_0x0033)
411 . = . + 0x38;
412 *(.upper_fonts.image_data_FontT84_0x0034)
413 . = . + 0x7f;
414 *(.upper_fonts.image_data_FontT84_0x0035)
415 . = . + 0x77;
416 *(.upper_fonts.image_data_FontT84_0x0036)
417 . = . + 0x7b;
418 *(.upper_fonts.image_data_FontT84_0x0037)
419 . = . + 0x0d;
420 *(.upper_fonts.image_data_FontT84_0x0038)
421 . = . + 0x2b;
422 *(.upper_fonts.image_data_FontT84_0x0039)
423 . = . + 0xe8;
424 *(.upper_fonts.image_data_FontT54_0x0022)
425 *(.upper_fonts.image_data_FontT54_0x0025)
426 . = . + 0x112;
427 *(.upper_fonts.image_data_FontT54_0x0027)
428 . = . + 0xd8;
429 *(.upper_fonts.image_data_FontT54_0x002a)
430 . = . + 0x133;
431 *(.upper_fonts.image_data_FontT54_0x002d)
432 . = . + 0x1d7;
433 *(.upper_fonts.image_data_FontT54_0x002e)
434 . = . + 0x17b;
435 *(.upper_fonts.image_data_FontT54_0x002f)
436 . = . + 0x02;
437 *(.upper_fonts.image_data_FontT54_0x0030)
438 . = . + 0x0ba;
439 *(.upper_fonts.image_data_FontT54_0x0031)
440 . = . + 0x27d;
441 *(.upper_fonts.image_data_FontT54_0x0032)
442 . = . + 0xe3;
443 *(.upper_fonts.image_data_FontT54_0x0033)
444 . = . + 0x35;
445 *(.upper_fonts.image_data_FontT54_0x0034)
446 . = . + 0x68;
447 *(.upper_fonts.image_data_FontT54_0x0035)
448 . = . + 0x35;
449 *(.upper_fonts.image_data_FontT54_0x0036)
450 . = . + 0xba;
451 *(.upper_fonts.image_data_FontT54_0x0037)
452 . = . + 0x191;
453 *(.upper_fonts.image_data_FontT54_0x0038)
454 . = . + 0xe3;
455 *(.upper_fonts.image_data_FontT54_0x0039)
456 . = . + 0xe3;
457 *(.upper_fonts.image_data_FontT54_0x003a)
458 . = . + 0x7b;
459 *(.upper_fonts.image_data_FontT54_0x0043)
460 . = . + 0x3b;
461 *(.upper_fonts.image_data_FontT54_0x006c)
462 . = . + 0x2d;
463 *(.upper_fonts.image_data_FontT54_0x006d)
464 . = . + 0x94;
465 *(.upper_fonts.image_data_FontT54_0x00ba)
466 . = . + 0x0a;
467
468 *(.upper_fonts.image_data_FontT105_0x002*)
469 *(.upper_fonts.image_data_FontT105_0x003*)
470 *(.upper_fonts.image_data_FontT105_0x0043)
471 . = . + 0x17c8;
472 *(.upper_fonts.image_data_FontT105_0x007c)
473 *(.upper_fonts.image_data_FontT105_0x00ba)
474 *(.upper_fonts.image_data_FontT105_54_0x006d)
475
476 *(.upper_fonts.image_data_FontT54_0x0068)
477 . = . + 0x1195;
478
479 *(.upper_fonts.image_data_FontT42_0x00b0)
480 *(.upper_fonts.image_data_FontT42_0x0020)
481 . = . + 0x23;
482 *(.upper_fonts.image_data_FontT42_0x002*)
483 *(.upper_fonts.image_data_FontT42_0x003*)
484 *(.upper_fonts.image_data_FontT42_0x004*)
485 *(.upper_fonts.image_data_FontT42_0x005*)
486 . = . + 0x420;
487 *(.upper_fonts.image_data_FontT42_0x006*)
488 *(.upper_fonts.image_data_FontT42_0x0070)
489 *(.upper_fonts.image_data_FontT42_0x0071)
490 *(.upper_fonts.image_data_FontT42_0x0072)
491 *(.upper_fonts.image_data_FontT42_0x0073)
492 *(.upper_fonts.image_data_FontT42_0x0074)
493 *(.upper_fonts.image_data_FontT42_0x0075)
494 *(.upper_fonts.image_data_FontT42_0x0076)
495 *(.upper_fonts.image_data_FontT42_0x0077)
496 *(.upper_fonts.image_data_FontT42_0x0078)
497 *(.upper_fonts.image_data_FontT42_0x0079)
498 . = . + 0x12c0;
499 *(.upper_fonts.image_data_FontT42_*)
500 *(.upper_fonts.image_data_T54addon_0x002b_PLUS*)
501 *(.upper_fonts.image_data_T54addon_0x0040_AT*)
502 *(.upper_fonts.image_data_FontT48addon*)
503 *(.upper_fonts.image_data_FontT24plus_0x00fb*)
504 *(.upper_fonts.image_data_FontT24plus_0x00fd*)
505 *(.upper_fonts.image_data_FontT48_*)
506 *(.upper_fonts.image_data_awe48_*)
507
508 /* moving of fonts from lower to upper */
509
510 *(.upper_fonts.*)
511
512 __upper_font_data_end = .;
513 } >UPPER
514
515
516
517 .upper_directory 0x081DEF00 : {
518 __font_directory = .;
519 *(.upper_font_directory.Awe48)
520 *(.upper_font_directory.FontT24)
521 *(.upper_font_directory.FontT42)
522 *(.upper_font_directory.FontT48)
523 *(.upper_font_directory.FontT54)
524 *(.upper_font_directory.FontT84)
525 *(.upper_font_directory.FontT105)
526 *(.upper_font_directory.FontT144)
527 *(.upper_font_directory.Batt24*)
528
529 __font_directory_end = .;
530 LONG( -1 ); /* Magic End Marker */
531
532 } >UPPER
533
534
535
536
537
538 /* Used by the startup to initialize data */
539 _sidata = LOADADDR(.data);
540
541 /************ Initialized Data Sections into RAM & ROM Memory **************/
542 .data :
543 {
544 . = ALIGN(4);
545
546 _sdata = .; /* create a global symbol at data start */
547 *(.data) /* .data sections */
548 *(.data*) /* .data* sections */
549 *(vtable)
550
551 . = ALIGN(4);
552 _edata = .; /* define a global symbol at data end */
553 } >RAM AT>ROM_BOOT
554
555
556
557 /*************** Uninitialized Data Section into RAM Memory ****************/
558 .bss :
559 {
560 . = ALIGN(4);
561
562 /* This is used by the startup in order to initialize the .bss secion */
563 _sbss = .; /* define a global symbol at bss start */
564 __bss_start__ = _sbss;
565 *(.bss)
566 *(.bss*)
567 *(COMMON)
568
569 . = ALIGN(4);
570 _ebss = .; /* define a global symbol at bss end */
571 __bss_end__ = _ebss;
572 } >RAM
573
574 /********************** User_heap_stack section ****************************/
575 /* just to check that there is enough RAM left */
576 ._user_heap_stack :
577 {
578 . = ALIGN(8);
579 PROVIDE ( end = . );
580 PROVIDE ( _end = . );
581 PROVIDE ( __end__ = . );
582 . = . + _Min_Heap_Size;
583 . = . + _Min_Stack_Size;
584 . = ALIGN(8);
585 _estack = .;
586 } >RAM
587
588 /* Remove information from the compiler libraries */
589 /DISCARD/ :
590 {
591 libc.a ( * )
592 libm.a ( * )
593 libgcc.a ( * )
594 }
595
596 .ARM.attributes 0 : { *(.ARM.attributes) }
597 }