annotate BootLoader/CPU1-F429_boot.ld @ 1016:0dd92e9b70a2 BootloaderOstc5

Bootloader use compressed fonts: The previous Bootloader was larger than 128k => not fitting into the first sectors of the second flash bank. Most memory is occupied by the two fonts in use. In order to make the bootloader small enough for the bootloader update function the fonts need to be compressed. To avoid code changes in visualization functions the compressed fonts are decompressed into RAM and then used in the same way as before.
author Ideenmodellierer
date Wed, 28 May 2025 17:20:44 +0200
parents 4ef0511c6665
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
1 /*****************************************************************************
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
2 * -*- coding: UTF-8 -*-
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
3 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
4 * \file Common/CPU1-F429.ld
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
5 * \brief Linker Script for CPU1 alias Discovery
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
6 * \author Ac6 workbench, Heinrichs Weikamp, and JD Gascuel
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
7 * \date 2018
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
8 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
9 * \details
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
10 * Linker script for STM32F429IIT6 Device from STM32F4 series
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
11 * - 192Kbytes RAM
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
12 * - 2048Kbytes ROM
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
13 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
14 * Set heap size, stack size and stack location according
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
15 * to application requirements.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
16 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
17 * Set memory bank area and size if external memory is used.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
18 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
19 * $Id$
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
20 *****************************************************************************
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
21 * \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
22 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
23 * This program is free software: you can redistribute it and/or modify
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
24 * it under the terms of the GNU General Public License as published by
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
25 * the Free Software Foundation, either version 3 of the License, or
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
26 * (at your option) any later version.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
27 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
28 * This program is distributed in the hope that it will be useful,
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
31 * GNU General Public License for more details.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
32 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
33 * You should have received a copy of the GNU General Public License
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
34 * along with this program. If not, see <http://www.gnu.org/licenses/>.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
35 *****************************************************************************
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
36 * HISTORY
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
37 * 2017-12-18 jDG: Mix between std AC6 file and chw stm32f429zi_flash.ld settings.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
38 */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
39
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
40 /* Entry Point */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
41 ENTRY(Reset_Handler)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
42
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
43 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
44 OUTPUT_ARCH(arm)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
45 SEARCH_DIR(.)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
46
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
47 /****************************************************************************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
48 /***************************** Memory Definition ****************************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
49 MEMORY
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
50 {
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
51 ROM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 0x00020000 /* 128K */
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
52 ROM (rx) : ORIGIN = 0x08040000, LENGTH = 0x00090000 /* 576K */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
53 UPPER(rx) : ORIGIN = 0x08132000, LENGTH = 0xAE270 /* 713K */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
54 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
55 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
56 }
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
57
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
58 /* Linker file shall be shared between Bootloader, Font and Firmware projects. Not used memory areas to be cut during bin generation */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
59
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
60 /* Make sure ROM and UPPER are contiguous, and map 2MB */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
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 */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
62 /*ASSERT( ORIGIN(UPPER) - ORIGIN(ROM) == LENGTH(ROM), "ROM lower and upper region shall be continuous" )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
63 /*ASSERT( LENGTH(ROM) + LENGTH(UPPER) == 2048K, "ROM lower + upper regions = 2MB" ) */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
64
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
65 /* Highest address of the user mode stack */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
66 /*_estack = ORIGIN(RAM) + LENGTH(RAM);*/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
67
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
68
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
69 _Min_Heap_Size = 0; /* no required heap (malloc'ed space) */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
70 _Min_Stack_Size = 0x08000; /* required 32K of stack */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
71
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
72 /* Linker script to place sections and symbol values. Should be used together
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
73 * with other linker script that defines memory regions FLASH and RAM.
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
74 * It references following symbols, which must be defined in code:
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
75 * Reset_Handler : Entry of reset handler
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
76 *
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
77 * It defines following symbols, which code can use without definition:
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
78 * __exidx_start
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
79 * __exidx_end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
80 * __preinit_array_start
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
81 * __preinit_array_end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
82 * __init_array_start
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
83 * __init_array_end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
84 * __fini_array_start
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
85 * __fini_array_end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
86 * _sbss
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
87 * __bss_start__
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
88 * _ebss
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
89 * __bss_end__
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
90 * _edata
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
91 * end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
92 * _end
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
93 * _estack
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
94 */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
95
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
96 /****************************************************************************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
97 /*************************** Code and Data Sections *************************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
98 SECTIONS
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
99 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
100 /******************* NVIC reset and interupt vectors **********************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
101
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
102 .isr_vector 0x08000000 :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
103 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
104 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
105 KEEP( *(.isr_vector) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
106 KEEP(*(.init))
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
107 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
108
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
109
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
110 .StdLibs 0x08000200:
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
111 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
112 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
113 *libm.a:*(*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
114 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
115
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
116
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
117 /********************** Constant data into ROM memory *********************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
118
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
119
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
120 .ARM.extab : {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
121 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
122 *(.ARM.extab* .gnu.linkonce.armextab.*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
123 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
124 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
125
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
126 .ARM : {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
127 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
128 __exidx_start = .;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
129 *(.ARM.exidx*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
130 __exidx_end = .;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
131 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
132 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
133
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
134 .preinit_array :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
135 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
136 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
137 PROVIDE_HIDDEN( __preinit_array_start = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
138 KEEP( *(.preinit_array*) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
139 PROVIDE_HIDDEN( __preinit_array_end = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
140 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
141 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
142
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
143 .init_array :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
144 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
145 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
146 PROVIDE_HIDDEN( __init_array_start = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
147 KEEP( *(SORT(.init_array.*)) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
148 KEEP( *(.init_array*) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
149 PROVIDE_HIDDEN( __init_array_end = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
150 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
151 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
152
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
153 .fini_array :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
154 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
155 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
156 PROVIDE_HIDDEN( __fini_array_start = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
157 KEEP( *(SORT(.fini_array.*)) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
158 KEEP( *(.fini_array*) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
159 PROVIDE_HIDDEN( __fini_array_end = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
160 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
161 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
162
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
163 /************* The program code and other data into ROM memory ************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
164
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
165
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
166 /************* Data and Structures at absolute address in ROM *************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
167
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
168 /* FIXME: this sets the SFirmwareData structure, not the code ... */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
169 .bootloader_firmware_data 0x0800A000 : {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
170 PROVIDE( bootloader_FirmwareData = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
171 KEEP( *(.bootloader_firmware_data) )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
172 } > ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
173
961
2130d771c8db Bootloader: Activate Hardware data defaults:
Ideenmodellierer
parents: 869
diff changeset
174 .bootloader_hardware_data 0x0800A040 : {
2130d771c8db Bootloader: Activate Hardware data defaults:
Ideenmodellierer
parents: 869
diff changeset
175 PROVIDE( bootloader_HardwareData = . );
2130d771c8db Bootloader: Activate Hardware data defaults:
Ideenmodellierer
parents: 869
diff changeset
176 KEEP( *(.bootloader_hardware_data) )
2130d771c8db Bootloader: Activate Hardware data defaults:
Ideenmodellierer
parents: 869
diff changeset
177 } > ROM_BOOT
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
178
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
179 .text 0x08001000 :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
180 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
181 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
182 *(.text.HAL*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
183 . = ALIGN(4);
971
d29e752660c5 Bootloader BT module factory reset:
Ideenmodellierer
parents: 961
diff changeset
184 *(.text*sprint*)
d29e752660c5 Bootloader BT module factory reset:
Ideenmodellierer
parents: 961
diff changeset
185 *(.text.MX*)
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
186 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
187
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
188
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
189 .text2 0x0800A100 :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
190 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
191 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
192 *(.text) /* .text sections (code) */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
193 *(.text*) /* .text* sections (code) */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
194 *(.glue_7) /* glue arm to thumb code */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
195 *(.glue_7t) /* glue thumb to arm code */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
196 *(.eh_frame)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
197 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
198 _etext = .; /* define a global symbols at end of code */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
199 } >ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
200
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
201 .rodata :
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
202 {
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
203 . = ALIGN(4);
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
204 *(.rodata) /* .rodata sections (constants, strings, etc.) */
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
205 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
206 . = ALIGN(4);
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
207 } >ROM_BOOT
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
208
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
209 /* Define Known Address for Each Font */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
210 /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
211
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1015
diff changeset
212 .lower_fonts 0x0801F000 : {
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
213 *(.lower_fonts.image_data_*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
214 *(.lower_fonts.*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
215 *(.upper_fonts.image_data_FontT48*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
216 *(.upper_fonts.FontT48*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
217 *(.upper_fonts.image_data_FontT24*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
218 *(.upper_fonts.FontT24*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
219 } > ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
220
971
d29e752660c5 Bootloader BT module factory reset:
Ideenmodellierer
parents: 961
diff changeset
221 .lower_directory 0x08004300 : {
869
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
222 *(.lower_font_directory*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
223 *(.upper_font_directory.FontT48*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
224 *(.upper_font_directory.FontT24*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
225 } > ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
226
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
227 .lower_image 0x08009000 : {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
228 *(.lower_image*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
229
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
230 } > ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
231
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
232 .lower_directory 0x08009500 : {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
233 *(.lower_image_directory*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
234 } > ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
235
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
236 /* Used by the startup to initialize data */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
237 _sidata = LOADADDR(.data);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
238
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
239 /************ Initialized Data Sections into RAM & ROM Memory **************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
240 .data :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
241 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
242 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
243
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
244 _sdata = .; /* create a global symbol at data start */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
245 *(.data) /* .data sections */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
246 *(.data*) /* .data* sections */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
247 *(vtable)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
248
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
249 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
250 _edata = .; /* define a global symbol at data end */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
251 } >RAM AT>ROM_BOOT
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
252
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
253
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
254
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
255 /*************** Uninitialized Data Section into RAM Memory ****************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
256 .bss :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
257 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
258 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
259
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
260 /* This is used by the startup in order to initialize the .bss secion */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
261 _sbss = .; /* define a global symbol at bss start */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
262 __bss_start__ = _sbss;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
263 *(.bss)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
264 *(.bss*)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
265 *(COMMON)
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
266
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
267 . = ALIGN(4);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
268 _ebss = .; /* define a global symbol at bss end */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
269 __bss_end__ = _ebss;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
270 } >RAM
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
271
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
272 /********************** User_heap_stack section ****************************/
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
273 /* just to check that there is enough RAM left */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
274 ._user_heap_stack :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
275 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
276 . = ALIGN(8);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
277 PROVIDE ( end = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
278 PROVIDE ( _end = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
279 PROVIDE ( __end__ = . );
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
280 . = . + _Min_Heap_Size;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
281 . = . + _Min_Stack_Size;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
282 . = ALIGN(8);
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
283 _estack = .;
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
284 } >RAM
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
285
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
286 /* Remove information from the compiler libraries */
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
287 /DISCARD/ :
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
288 {
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
289 libc.a ( * )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
290 libm.a ( * )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
291 libgcc.a ( * )
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
292 }
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
293
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
294 .ARM.attributes 0 : { *(.ARM.attributes) }
4e10a3e087a1 Reactivate Bootloader:
Ideenmodellierer
parents:
diff changeset
295 }