Add extra linker script changes

This commit is contained in:
Szczepan Zalega 2019-08-23 17:45:43 +02:00
parent 35e52f4968
commit 9ddba5dfc3
No known key found for this signature in database
GPG Key ID: D9BAE35991DE5B22
2 changed files with 43 additions and 1 deletions

View File

@ -12,9 +12,17 @@ _estack = 0x2000c000;
_MIN_STACK_SIZE = 0x400;
/*
flash2 is for storing bootloader data, like last used firmware version.
_bconfig_start should be equal to (APPLICATION_END_PAGE) page address, from targets/stm32l432/src/memory_layout.h:30; and equal to flash2 origin
*/
_bconfig_start = 0x08000000 + 216*1024;
MEMORY
{
flash (rx) : ORIGIN = 0x08000000, LENGTH = 32K
flash2 (rx) : ORIGIN = 0x08000000 + 216*1024, LENGTH = 2K
ram (xrw) : ORIGIN = 0x20000000, LENGTH = 48K
sram2 (rw) : ORIGIN = 0x10000000, LENGTH = 16K
}
@ -39,6 +47,11 @@ SECTIONS
_etext = .;
} >flash
.flag2 _bconfig_start :
{
KEEP(*(.flag2)) ;
} > flash2
_sidata = LOADADDR(.data);
.data :

View File

@ -12,9 +12,31 @@ _estack = 0x2000c000;
_MIN_STACK_SIZE = 0x400;
/*
Memory layout of device:
20+2 KB 198KB-2KB -8 38 KB
| bootloader | application | secrets/data |
----------->
len | 32 KB/16p| 184KB-8-8/98p | 8B | 2kB/1p | 38 KB/19p |
pos | 0->32 KB | 32->216KB-8-8 | 216KB-8-8->216KB-8 | 216kB -> 218 kB | 218->256 KB |
posp | 0-16 | 16-113 | 113-113 | 113-114 | 113-128 |
desc | bootloader | application | firmware version | bootloader data | secrets/data |
Last 8 bytes in application space are occupied by bootloader flags - app
authorization and bootloader activation flag.
Previous 8 bytes are application version.
*/
/* Current firmware version number
Should be equal to (APPLICATION_END_ADDR-8) from targets/stm32l432/src/memory_layout.h:40 */
_version_start = 0x08000000 + 216*1024-8-8;
/* flash length is (APPLICATION_END_PAGE-20*1024), where 20K is bootloader */
MEMORY
{
flash (rx) : ORIGIN = 0x08008000, LENGTH = 186K - 8
flash (rx) : ORIGIN = 0x08000000 + 20K + 12K, LENGTH = 216K - 20K - 12K - 8 - 8
flash_v (rx) : ORIGIN = 0x08000000 + 216K - 8 - 8, LENGTH = 8
ram (xrw) : ORIGIN = 0x20000000, LENGTH = 48K
sram2 (rw) : ORIGIN = 0x10000000, LENGTH = 16K
}
@ -41,6 +63,13 @@ SECTIONS
_sidata = LOADADDR(.data);
.flag _version_start :
{
KEEP(*(.flag)) ;
} > flash_v
.data :
{
. = ALIGN(8);