Fix linker script to prevent using not available flash memory

This commit is contained in:
Alex Dolzhenkov 2022-11-29 21:28:28 +13:00
parent b56c5f25f0
commit aac0081929

View file

@ -1,11 +1,39 @@
/* Linker script to configure memory regions. */ /****************************************************************
* Memory map configuration for using application with MCU-boot *
****************************************************************/
/*
* Internal nRF52 flash memory:
* 0x00000000: MCUBoot(28 kB)
* 0x00007000: Reboot logs (4 kB)
* 0x00008000: MCUBoot header (0x20 bytes)
* 0x00008020: Application (463+ kB)
* 0x0007be50: MCUBoot image trailer (432 bytes)
* 0x0007c000: MCUBoot Scratch partition (4 kB)
* 0x0007d000: unused (12 kB)
*
* SPI flash:
* 0x00000000: Bootloader Assets, like Boot Graphic (256 kB)
* 0x00040000: Application 2 (including MCUBoot header) (464 kB)
* 0x000b4000: User files - littlefs (3376 kB)
*/
SEARCH_DIR(.) SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys) GROUP(-lgcc -lc -lnosys)
MCUBOOT_SIZE = 0x8000;
MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20;
MCUBOOT_APP_IMAGE_TRAILER_SIZE = 432;
APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE;
APP_SIZE = 464K - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE;
SCRATCH_OFFSET = 0x7c000;
SCRATCH_SIZE = 4K;
MEMORY MEMORY
{ {
FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000 /* MCUBOOT (r) : ORIGIN = 0x0, LENGTH = MCUBOOT_SIZE */
FLASH (rx) : ORIGIN = APP_OFFSET, LENGTH = APP_SIZE
/* SCRATCH (r) : ORIGIN = SCRATCH_OFFSET, LENGTH = SCRATCH_SIZE */
SPARE_SPACE (r) : ORIGIN = SCRATCH_OFFSET + SCRATCH_SIZE, LENGTH = 12K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
} }