34 lines
1.3 KiB
Plaintext
34 lines
1.3 KiB
Plaintext
MEMORY
|
|
{
|
|
/*
|
|
* STM32F72xx flash sectors 0-5 form the 256 KiB application region.
|
|
* Sectors 6 and 7 are two independently erasable 128 KiB configuration
|
|
* journal slots at 0x0804_0000 and 0x0806_0000. They are deliberately not
|
|
* linker regions, so application sections cannot overlap persistent data.
|
|
*/
|
|
FLASH : ORIGIN = 0x08000000, LENGTH = 256K
|
|
|
|
/*
|
|
* STM32F722 RAM totals 256 KiB:
|
|
* - DTCM: 64 KiB at 0x2000_0000
|
|
* - SRAM1: 176 KiB at 0x2001_0000
|
|
* - SRAM2: 16 KiB at 0x2003_C000
|
|
*
|
|
* SRAM1 and SRAM2 are contiguous and DMA-accessible. DTCM remains separate
|
|
* for a future explicit placement policy.
|
|
*/
|
|
RAM : ORIGIN = 0x20010000, LENGTH = 192K
|
|
}
|
|
|
|
/* Absolute symbols are the single source of truth for the Rust NOR adapter. */
|
|
__kaptan_config_slot0_start = 0x08040000;
|
|
__kaptan_config_slot1_start = 0x08060000;
|
|
__kaptan_config_journal_end = 0x08080000;
|
|
|
|
ASSERT(ORIGIN(FLASH) + LENGTH(FLASH) == __kaptan_config_slot0_start,
|
|
"application FLASH must end at configuration slot 0")
|
|
ASSERT(__kaptan_config_slot1_start - __kaptan_config_slot0_start == 128K,
|
|
"configuration slot 0 must be one F722 128 KiB sector")
|
|
ASSERT(__kaptan_config_journal_end - __kaptan_config_slot1_start == 128K,
|
|
"configuration slot 1 must be one F722 128 KiB sector")
|