comparison BootLoader/CPU1-F429_boot.ld @ 981:c6c781a2e85b default

Merge into default
author heinrichsweikamp
date Tue, 11 Feb 2025 18:12:00 +0100
parents d29e752660c5
children 4ef0511c6665
comparison
equal deleted inserted replaced
871:f7318457df4d 981:c6c781a2e85b
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 .bootloader_hardware_data 0x0800A040 : {
192 PROVIDE( bootloader_HardwareData = . );
193 KEEP( *(.bootloader_hardware_data) )
194 } > ROM_BOOT
195
196 .text 0x08001000 :
197 {
198 . = ALIGN(4);
199 *(.text.HAL*)
200 . = ALIGN(4);
201 *(.text*sprint*)
202 *(.text.MX*)
203 } >ROM_BOOT
204
205
206 .text2 0x0800A100 :
207 {
208 . = ALIGN(4);
209 *(.text) /* .text sections (code) */
210 *(.text*) /* .text* sections (code) */
211 *(.glue_7) /* glue arm to thumb code */
212 *(.glue_7t) /* glue thumb to arm code */
213 *(.eh_frame)
214 . = ALIGN(4);
215 _etext = .; /* define a global symbols at end of code */
216 } >ROM_BOOT
217
218
219
220 /* Define Known Address for Each Font */
221 /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */
222
223 .lower_fonts 0x08016000 : {
224 *(.lower_fonts.image_data_*)
225 *(.lower_fonts.*)
226 *(.upper_fonts.image_data_FontT48*)
227 *(.upper_fonts.FontT48*)
228 *(.upper_fonts.image_data_FontT24*)
229 *(.upper_fonts.FontT24*)
230 } > ROM_BOOT
231
232 .lower_directory 0x08004300 : {
233 *(.lower_font_directory*)
234 *(.upper_font_directory.FontT48*)
235 *(.upper_font_directory.FontT24*)
236 } > ROM_BOOT
237
238
239 .lower_image 0x08009000 : {
240 *(.lower_image*)
241
242 } > ROM_BOOT
243
244 .lower_directory 0x08009500 : {
245 *(.lower_image_directory*)
246 } > ROM_BOOT
247
248 .upper_fonts 0x08132040 : {
249 __upper_font_data = .;
250 . = 0x13E;
251 *(.upper_fonts.image_data_FontT144_0x0030)
252 . = 0x02515;
253 *(.upper_fonts.image_data_FontT144_0x0031)
254 . = 0x03469;
255 *(.upper_fonts.image_data_FontT144_0x0032)
256 . = 0x4FDC;
257 *(.upper_fonts.image_data_FontT144_0x0033)
258 . = 0x6862;
259 *(.upper_fonts.image_data_FontT144_0x0034)
260 . = 0x86C2;
261 *(.upper_fonts.image_data_FontT144_0x0035)
262 . = 0x9FB3;
263 *(.upper_fonts.image_data_FontT144_0x0036)
264 . = 0xBB26;
265 *(.upper_fonts.image_data_FontT144_0x0037)
266 . = 0xD845;
267 *(.upper_fonts.image_data_FontT144_0x0038)
268 . = 0xF34D;
269 *(.upper_fonts.image_data_FontT144_0x0039)
270 . = 0x10EC0;
271 *(.upper_fonts.image_data_FontT24_0x0020)
272 *(.upper_fonts.image_data_FontT24_0x0021)
273 *(.upper_fonts.image_data_FontT24_0x0022)
274 *(.upper_fonts.image_data_FontT24_0x0023)
275 *(.upper_fonts.image_data_FontT24_0x0024)
276 *(.upper_fonts.image_data_FontT24_0x0025)
277 *(.upper_fonts.image_data_FontT24_0x0026)
278 *(.upper_fonts.image_data_FontT24_0x0027)
279 *(.upper_fonts.image_data_FontT24_0x0028)
280 *(.upper_fonts.image_data_FontT24_0x0029)
281 *(.upper_fonts.image_data_FontT24_0x002a)
282 *(.upper_fonts.image_data_FontT24_0x003f)
283 *(.upper_fonts.image_data_FontT24_0x002c)
284 *(.upper_fonts.image_data_FontT24_0x002d)
285 *(.upper_fonts.image_data_FontT24_0x002e)
286 *(.upper_fonts.image_data_FontT24_0x002f)
287 *(.upper_fonts.image_data_FontT24_0x0030)
288 *(.upper_fonts.image_data_FontT24_0x0031)
289 *(.upper_fonts.image_data_FontT24_0x0032)
290 *(.upper_fonts.image_data_FontT24_0x0033)
291 *(.upper_fonts.image_data_FontT24_0x0034)
292 *(.upper_fonts.image_data_FontT24_0x0035)
293 *(.upper_fonts.image_data_FontT24_0x0036)
294 *(.upper_fonts.image_data_FontT24_0x0037)
295 *(.upper_fonts.image_data_FontT24_0x0038)
296 *(.upper_fonts.image_data_FontT24_0x0039)
297 *(.upper_fonts.image_data_FontT24_0x003a)
298 *(.upper_fonts.image_data_FontT24_0x003b)
299 *(.upper_fonts.image_data_FontT24_0x003c)
300 *(.upper_fonts.image_data_FontT24_0x003d)
301 *(.upper_fonts.image_data_FontT24_0x003e)
302 . = . + 0x8c;
303 *(.upper_fonts.image_data_FontT24_0x0040)
304 *(.upper_fonts.image_data_FontT24_0x0041)
305 *(.upper_fonts.image_data_FontT24_0x0042)
306 *(.upper_fonts.image_data_FontT24_0x0043)
307 *(.upper_fonts.image_data_FontT24_0x0044)
308 *(.upper_fonts.image_data_FontT24_0x0045)
309 *(.upper_fonts.image_data_FontT24_0x0046)
310 *(.upper_fonts.image_data_FontT24_0x0047)
311 *(.upper_fonts.image_data_FontT24_0x0048)
312 *(.upper_fonts.image_data_FontT24_0x0049)
313 *(.upper_fonts.image_data_FontT24_0x004a)
314 *(.upper_fonts.image_data_FontT24_0x004b)
315 *(.upper_fonts.image_data_FontT24_0x004c)
316 *(.upper_fonts.image_data_FontT24_0x004d)
317 *(.upper_fonts.image_data_FontT24_0x004e)
318 *(.upper_fonts.image_data_FontT24_0x004f)
319 *(.upper_fonts.image_data_FontT24_0x0050)
320 *(.upper_fonts.image_data_FontT24_0x0051)
321 *(.upper_fonts.image_data_FontT24_0x0052)
322 *(.upper_fonts.image_data_FontT24_0x0053)
323 *(.upper_fonts.image_data_FontT24_0x0054)
324 *(.upper_fonts.image_data_FontT24_0x0055)
325 *(.upper_fonts.image_data_FontT24_0x0056)
326 *(.upper_fonts.image_data_FontT24_0x0057)
327 *(.upper_fonts.image_data_FontT24_0x0058)
328 *(.upper_fonts.image_data_FontT24_0x0059)
329 *(.upper_fonts.image_data_FontT24_0x005a)
330 *(.upper_fonts.image_data_FontT24_0x005b)
331 *(.upper_fonts.image_data_FontT24_0x005c)
332 *(.upper_fonts.image_data_FontT24_0x005d)
333 *(.upper_fonts.image_data_FontT24_0x005e)
334 *(.upper_fonts.image_data_FontT24_0x005f)
335 *(.upper_fonts.image_data_FontT24_0x0060)
336 *(.upper_fonts.image_data_FontT24_0x0061)
337 *(.upper_fonts.image_data_FontT24_0x0062)
338 *(.upper_fonts.image_data_FontT24_0x0063)
339 . = . + 0x1c;
340 *(.upper_fonts.image_data_FontT24_0x0064)
341 *(.upper_fonts.image_data_FontT24_0x0065)
342 *(.upper_fonts.image_data_FontT24_0x0066)
343 *(.upper_fonts.image_data_FontT24_0x0067)
344 *(.upper_fonts.image_data_FontT24_0x0068)
345 *(.upper_fonts.image_data_FontT24_0x0069)
346 *(.upper_fonts.image_data_FontT24_0x006a)
347 *(.upper_fonts.image_data_FontT24_0x006b)
348 *(.upper_fonts.image_data_FontT24_0x006c)
349 *(.upper_fonts.image_data_FontT24_0x006d)
350 *(.upper_fonts.image_data_FontT24_0x006e)
351 *(.upper_fonts.image_data_FontT24_0x006f)
352 *(.upper_fonts.image_data_FontT24_0x0070)
353 *(.upper_fonts.image_data_FontT24_0x0071)
354 *(.upper_fonts.image_data_FontT24_0x0072)
355 *(.upper_fonts.image_data_FontT24_0x0073)
356 *(.upper_fonts.image_data_FontT24_0x0074)
357 *(.upper_fonts.image_data_FontT24_0x0075)
358 *(.upper_fonts.image_data_FontT24_0x0076)
359 *(.upper_fonts.image_data_FontT24_0x0077)
360 *(.upper_fonts.image_data_FontT24_0x0078)
361 *(.upper_fonts.image_data_FontT24_0x0079)
362 *(.upper_fonts.image_data_FontT24_0x007a)
363 *(.upper_fonts.image_data_FontT24_0x007b)
364 *(.upper_fonts.image_data_FontT24_0x007c)
365 . = . + 0x1c;
366 *(.upper_fonts.image_data_FontT24_0x007d)
367 *(.upper_fonts.image_data_FontT24_0x007e)
368 *(.upper_fonts.image_data_FontT24_0x00a1)
369 *(.upper_fonts.image_data_FontT24_0x00bf)
370 *(.upper_fonts.image_data_FontT24_0x00c1)
371 *(.upper_fonts.image_data_FontT24_0x00c4)
372 *(.upper_fonts.image_data_FontT24_0x00c6)
373 *(.upper_fonts.image_data_FontT24_0x00c7)
374 *(.upper_fonts.image_data_FontT24_0x00c9)
375 *(.upper_fonts.image_data_FontT24_0x00cd)
376 *(.upper_fonts.image_data_FontT24_0x00d1)
377 *(.upper_fonts.image_data_FontT24_0x00d3)
378 *(.upper_fonts.image_data_FontT24_0x00d6)
379 *(.upper_fonts.image_data_FontT24_0x00da)
380 *(.upper_fonts.image_data_FontT24_0x00dc)
381 *(.upper_fonts.image_data_FontT24_0x00df)
382 *(.upper_fonts.image_data_FontT24_0x00e0)
383 *(.upper_fonts.image_data_FontT24_0x00e1)
384 *(.upper_fonts.image_data_FontT24_0x00e2)
385 *(.upper_fonts.image_data_FontT24_0x00e4)
386 *(.upper_fonts.image_data_FontT24_0x00e6)
387 *(.upper_fonts.image_data_FontT24_0x00e7)
388 *(.upper_fonts.image_data_FontT24_0x00e8)
389 *(.upper_fonts.image_data_FontT24_0x00e9)
390 *(.upper_fonts.image_data_FontT24_0x00ec)
391 *(.upper_fonts.image_data_FontT24_0x00ed)
392 *(.upper_fonts.image_data_FontT24_0x00f0)
393 *(.upper_fonts.image_data_FontT24_0x00f1)
394 *(.upper_fonts.image_data_FontT24_0x00f2)
395 *(.upper_fonts.image_data_FontT24_0x00f3)
396 *(.upper_fonts.image_data_FontT24_0x00f6)
397 *(.upper_fonts.image_data_FontT24_0x00f9)
398 *(.upper_fonts.image_data_FontT24_0x00fa)
399 *(.upper_fonts.image_data_FontT24_0x00fc)
400 *(.upper_fonts.image_data_FontT24_0x00ff)
401 *(.upper_fonts.image_data_FontT24_0x0152)
402 *(.upper_fonts.image_data_FontT24_0x0153)
403 *(.upper_fonts.image_data_FontT24_0x0178)
404 *(.upper_fonts.image_data_FontT24_0x002b)
405 . = . + 0x1d642;
406 *(.upper_images.image_data_ostc_fuer_Tauchcomputer_240px)
407 *(.upper_fonts.image_data_FontT84_0x002e)
408 . = . + 0x9f;
409 *(.upper_fonts.image_data_FontT84_0x0030)
410 . = . + 0x0d;
411 *(.upper_fonts.image_data_FontT84_0x0031)
412 . = . + 0xaa;
413 *(.upper_fonts.image_data_FontT84_0x0032)
414 . = . + 0x7b;
415 *(.upper_fonts.image_data_FontT84_0x0033)
416 . = . + 0x38;
417 *(.upper_fonts.image_data_FontT84_0x0034)
418 . = . + 0x7f;
419 *(.upper_fonts.image_data_FontT84_0x0035)
420 . = . + 0x77;
421 *(.upper_fonts.image_data_FontT84_0x0036)
422 . = . + 0x7b;
423 *(.upper_fonts.image_data_FontT84_0x0037)
424 . = . + 0x0d;
425 *(.upper_fonts.image_data_FontT84_0x0038)
426 . = . + 0x2b;
427 *(.upper_fonts.image_data_FontT84_0x0039)
428 . = . + 0xe8;
429 *(.upper_fonts.image_data_FontT54_0x0022)
430 *(.upper_fonts.image_data_FontT54_0x0025)
431 . = . + 0x112;
432 *(.upper_fonts.image_data_FontT54_0x0027)
433 . = . + 0xd8;
434 *(.upper_fonts.image_data_FontT54_0x002a)
435 . = . + 0x133;
436 *(.upper_fonts.image_data_FontT54_0x002d)
437 . = . + 0x1d7;
438 *(.upper_fonts.image_data_FontT54_0x002e)
439 . = . + 0x17b;
440 *(.upper_fonts.image_data_FontT54_0x002f)
441 . = . + 0x02;
442 *(.upper_fonts.image_data_FontT54_0x0030)
443 . = . + 0x0ba;
444 *(.upper_fonts.image_data_FontT54_0x0031)
445 . = . + 0x27d;
446 *(.upper_fonts.image_data_FontT54_0x0032)
447 . = . + 0xe3;
448 *(.upper_fonts.image_data_FontT54_0x0033)
449 . = . + 0x35;
450 *(.upper_fonts.image_data_FontT54_0x0034)
451 . = . + 0x68;
452 *(.upper_fonts.image_data_FontT54_0x0035)
453 . = . + 0x35;
454 *(.upper_fonts.image_data_FontT54_0x0036)
455 . = . + 0xba;
456 *(.upper_fonts.image_data_FontT54_0x0037)
457 . = . + 0x191;
458 *(.upper_fonts.image_data_FontT54_0x0038)
459 . = . + 0xe3;
460 *(.upper_fonts.image_data_FontT54_0x0039)
461 . = . + 0xe3;
462 *(.upper_fonts.image_data_FontT54_0x003a)
463 . = . + 0x7b;
464 *(.upper_fonts.image_data_FontT54_0x0043)
465 . = . + 0x3b;
466 *(.upper_fonts.image_data_FontT54_0x006c)
467 . = . + 0x2d;
468 *(.upper_fonts.image_data_FontT54_0x006d)
469 . = . + 0x94;
470 *(.upper_fonts.image_data_FontT54_0x00ba)
471 . = . + 0x0a;
472
473 *(.upper_fonts.image_data_FontT105_0x002*)
474 *(.upper_fonts.image_data_FontT105_0x003*)
475 *(.upper_fonts.image_data_FontT105_0x0043)
476 . = . + 0x17c8;
477 *(.upper_fonts.image_data_FontT105_0x007c)
478 *(.upper_fonts.image_data_FontT105_0x00ba)
479 *(.upper_fonts.image_data_FontT105_54_0x006d)
480
481 *(.upper_fonts.image_data_FontT54_0x0068)
482 . = . + 0x1195;
483
484 *(.upper_fonts.image_data_FontT42_0x00b0)
485 *(.upper_fonts.image_data_FontT42_0x0020)
486 . = . + 0x23;
487 *(.upper_fonts.image_data_FontT42_0x002*)
488 *(.upper_fonts.image_data_FontT42_0x003*)
489 *(.upper_fonts.image_data_FontT42_0x004*)
490 *(.upper_fonts.image_data_FontT42_0x005*)
491 . = . + 0x420;
492 *(.upper_fonts.image_data_FontT42_0x006*)
493 *(.upper_fonts.image_data_FontT42_0x0070)
494 *(.upper_fonts.image_data_FontT42_0x0071)
495 *(.upper_fonts.image_data_FontT42_0x0072)
496 *(.upper_fonts.image_data_FontT42_0x0073)
497 *(.upper_fonts.image_data_FontT42_0x0074)
498 *(.upper_fonts.image_data_FontT42_0x0075)
499 *(.upper_fonts.image_data_FontT42_0x0076)
500 *(.upper_fonts.image_data_FontT42_0x0077)
501 *(.upper_fonts.image_data_FontT42_0x0078)
502 *(.upper_fonts.image_data_FontT42_0x0079)
503 . = . + 0x12c0;
504 *(.upper_fonts.image_data_FontT42_*)
505 *(.upper_fonts.image_data_T54addon_0x002b_PLUS*)
506 *(.upper_fonts.image_data_T54addon_0x0040_AT*)
507 *(.upper_fonts.image_data_FontT48addon*)
508 *(.upper_fonts.image_data_FontT24plus_0x00fb*)
509 *(.upper_fonts.image_data_FontT24plus_0x00fd*)
510 *(.upper_fonts.image_data_FontT48_*)
511 *(.upper_fonts.image_data_awe48_*)
512
513 /* moving of fonts from lower to upper */
514
515 *(.upper_fonts.*)
516
517 __upper_font_data_end = .;
518 } >UPPER
519
520
521
522 .upper_directory 0x081DEF00 : {
523 __font_directory = .;
524 *(.upper_font_directory.Awe48)
525 *(.upper_font_directory.FontT24)
526 *(.upper_font_directory.FontT42)
527 *(.upper_font_directory.FontT48)
528 *(.upper_font_directory.FontT54)
529 *(.upper_font_directory.FontT84)
530 *(.upper_font_directory.FontT105)
531 *(.upper_font_directory.FontT144)
532 *(.upper_font_directory.Batt24*)
533
534 __font_directory_end = .;
535 LONG( -1 ); /* Magic End Marker */
536
537 } >UPPER
538
539
540
541
542
543 /* Used by the startup to initialize data */
544 _sidata = LOADADDR(.data);
545
546 /************ Initialized Data Sections into RAM & ROM Memory **************/
547 .data :
548 {
549 . = ALIGN(4);
550
551 _sdata = .; /* create a global symbol at data start */
552 *(.data) /* .data sections */
553 *(.data*) /* .data* sections */
554 *(vtable)
555
556 . = ALIGN(4);
557 _edata = .; /* define a global symbol at data end */
558 } >RAM AT>ROM_BOOT
559
560
561
562 /*************** Uninitialized Data Section into RAM Memory ****************/
563 .bss :
564 {
565 . = ALIGN(4);
566
567 /* This is used by the startup in order to initialize the .bss secion */
568 _sbss = .; /* define a global symbol at bss start */
569 __bss_start__ = _sbss;
570 *(.bss)
571 *(.bss*)
572 *(COMMON)
573
574 . = ALIGN(4);
575 _ebss = .; /* define a global symbol at bss end */
576 __bss_end__ = _ebss;
577 } >RAM
578
579 /********************** User_heap_stack section ****************************/
580 /* just to check that there is enough RAM left */
581 ._user_heap_stack :
582 {
583 . = ALIGN(8);
584 PROVIDE ( end = . );
585 PROVIDE ( _end = . );
586 PROVIDE ( __end__ = . );
587 . = . + _Min_Heap_Size;
588 . = . + _Min_Stack_Size;
589 . = ALIGN(8);
590 _estack = .;
591 } >RAM
592
593 /* Remove information from the compiler libraries */
594 /DISCARD/ :
595 {
596 libc.a ( * )
597 libm.a ( * )
598 libgcc.a ( * )
599 }
600
601 .ARM.attributes 0 : { *(.ARM.attributes) }
602 }