|
1 |
| -/* Linker script to configure memory regions. */ |
| 1 | +/**************************************************************** |
| 2 | + * Memory map configuration for using application with MCU-boot * |
| 3 | + ****************************************************************/ |
| 4 | +/* |
| 5 | + * Internal nRF52 flash memory: |
| 6 | + * 0x00000000: MCUBoot(28 kB) |
| 7 | + * 0x00007000: Reboot logs (4 kB) |
| 8 | + * 0x00008000: MCUBoot header (32 bytes) |
| 9 | + * 0x00008020: Application (463+ kB) |
| 10 | + * 0x0007be50: MCUBoot image trailer (432 bytes) |
| 11 | + * 0x0007c000: MCUBoot Scratch partition (4 kB) |
| 12 | + * 0x0007d000: unused (12 kB) |
| 13 | + * |
| 14 | + * SPI flash: |
| 15 | + * 0x00000000: Bootloader Assets, like Boot Graphic (256 kB) |
| 16 | + * 0x00040000: Application 2 (including MCUBoot header) (464 kB) |
| 17 | + * 0x000b4000: User files - littlefs (3376 kB) |
| 18 | + * |
| 19 | + * This linker script sets the origin of the application at 0x00 |
| 20 | + * which means that the application must be linked with a start |
| 21 | + * address at 0x00 and that it'll overwrite the bootloader. |
| 22 | + * This is very practical when debugging and testing on |
| 23 | + * the hardware with a SWD probe. |
| 24 | + */ |
2 | 25 |
|
3 | 26 | SEARCH_DIR(.)
|
4 | 27 | GROUP(-lgcc -lc -lnosys)
|
5 | 28 |
|
| 29 | +MCUBOOT_SIZE = 0x8000; |
| 30 | +SCRATCH_SIZE = 0x1000; |
| 31 | +TLV_SIZE = 0x28; /* Metadata added by imgtool at the end of the image */ |
| 32 | +SCRATCH_OFFSET = 0x7c000; |
| 33 | +MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; |
| 34 | +MCUBOOT_APP_IMAGE_TRAILER_SIZE = 0x1b0; |
| 35 | +APP_OFFSET = 0x00; |
| 36 | +APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE - TLV_SIZE; |
| 37 | + |
6 | 38 | MEMORY
|
7 | 39 | {
|
8 |
| - FLASH (rx) : ORIGIN = 0x00000, LENGTH = 0x78000 |
| 40 | + /* MCUBOOT (r) : ORIGIN = 0x0, LENGTH = MCUBOOT_SIZE */ |
| 41 | + FLASH (rx) : ORIGIN = APP_OFFSET, LENGTH = APP_SIZE |
| 42 | + /* SCRATCH (r) : ORIGIN = SCRATCH_OFFSET, LENGTH = SCRATCH_SIZE */ |
| 43 | + SPARE_SPACE (r) : ORIGIN = SCRATCH_OFFSET + SCRATCH_SIZE, LENGTH = 12K |
9 | 44 | RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
10 | 45 | }
|
11 | 46 |
|
|
0 commit comments