Mercurial > public > ostc4
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 1015:4ef0511c6665 | 1016:0dd92e9b70a2 |
|---|---|
| 46 | 46 |
| 47 /****************************************************************************/ | 47 /****************************************************************************/ |
| 48 /***************************** Memory Definition ****************************/ | 48 /***************************** Memory Definition ****************************/ |
| 49 MEMORY | 49 MEMORY |
| 50 { | 50 { |
| 51 ROM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 0x00040000 /* 256K */ | 51 ROM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 0x00020000 /* 128K */ |
| 52 ROM (rx) : ORIGIN = 0x08040000, LENGTH = 0x00090000 /* 576K */ | 52 ROM (rx) : ORIGIN = 0x08040000, LENGTH = 0x00090000 /* 576K */ |
| 53 UPPER(rx) : ORIGIN = 0x08132000, LENGTH = 0xAE270 /* 713K */ | 53 UPPER(rx) : ORIGIN = 0x08132000, LENGTH = 0xAE270 /* 713K */ |
| 54 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K | 54 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K |
| 55 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K | 55 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K |
| 56 } | 56 } |
| 111 { | 111 { |
| 112 . = ALIGN(4); | 112 . = ALIGN(4); |
| 113 *libm.a:*(*) | 113 *libm.a:*(*) |
| 114 } >ROM_BOOT | 114 } >ROM_BOOT |
| 115 | 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 | 116 |
| 124 /********************** Constant data into ROM memory *********************/ | 117 /********************** Constant data into ROM memory *********************/ |
| 125 | 118 |
| 126 | 119 |
| 127 .ARM.extab : { | 120 .ARM.extab : { |
| 203 *(.eh_frame) | 196 *(.eh_frame) |
| 204 . = ALIGN(4); | 197 . = ALIGN(4); |
| 205 _etext = .; /* define a global symbols at end of code */ | 198 _etext = .; /* define a global symbols at end of code */ |
| 206 } >ROM_BOOT | 199 } >ROM_BOOT |
| 207 | 200 |
| 208 | 201 .rodata : |
| 202 { | |
| 203 . = ALIGN(4); | |
| 204 *(.rodata) /* .rodata sections (constants, strings, etc.) */ | |
| 205 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ | |
| 206 . = ALIGN(4); | |
| 207 } >ROM_BOOT | |
| 209 | 208 |
| 210 /* Define Known Address for Each Font */ | 209 /* Define Known Address for Each Font */ |
| 211 /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */ | 210 /* Flash Sector 23 is protected (bootloader font + image) => use end of sector 22 */ |
| 212 | 211 |
| 213 .lower_fonts 0x08016000 : { | 212 .lower_fonts 0x0801F000 : { |
| 214 *(.lower_fonts.image_data_*) | 213 *(.lower_fonts.image_data_*) |
| 215 *(.lower_fonts.*) | 214 *(.lower_fonts.*) |
| 216 *(.upper_fonts.image_data_FontT48*) | 215 *(.upper_fonts.image_data_FontT48*) |
| 217 *(.upper_fonts.FontT48*) | 216 *(.upper_fonts.FontT48*) |
| 218 *(.upper_fonts.image_data_FontT24*) | 217 *(.upper_fonts.image_data_FontT24*) |
