869
+ − 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 }