diff --git a/ports/nordic/boards/common.template.ld b/ports/nordic/boards/common.template.ld index dda31e4fdce..f9dc09cfc7a 100644 --- a/ports/nordic/boards/common.template.ld +++ b/ports/nordic/boards/common.template.ld @@ -30,6 +30,22 @@ MEMORY APP_RAM (xrw) : ORIGIN = ${APP_RAM_START_ADDR}, LENGTH = ${APP_RAM_SIZE} } +/* Confirm that the flash regions defined above are in order and do not overlap.*/ +ASSERT((ORIGIN(FLASH_ISR) + LENGTH(FLASH_ISR)) <= ORIGIN(FLASH_FIRMWARE), + "FLASH_ISR overlaps FLASH_FIRMWARE") +ASSERT((ORIGIN(FLASH_FIRMWARE) + LENGTH(FLASH_FIRMWARE)) <= ORIGIN(FLASH_BLE_CONFIG), + "FLASH_FIRMWARE overlaps FLASH_BLE_CONFIG") +ASSERT((ORIGIN(FLASH_BLE_CONFIG) + LENGTH(FLASH_BLE_CONFIG)) <= ORIGIN(FLASH_NVM), + "FLASH_BLE_CONFIG overlaps FLASH_NVM") +ASSERT((ORIGIN(FLASH_NVM) + LENGTH(FLASH_NVM)) <= ORIGIN(FLASH_FATFS), + "FLASH_NVM overlaps FLASH_FATFS") +ASSERT((ORIGIN(FLASH_FATFS) + LENGTH(FLASH_FATFS)) <= ORIGIN(FLASH_BOOTLOADER), + "FLASH_FATFS overlaps FLASH_BOOTLOADER") +ASSERT((ORIGIN(FLASH_BOOTLOADER) + LENGTH(FLASH_BOOTLOADER)) <= ORIGIN(FLASH_BOOTLOADER_SETTINGS), + "FLASH_BOOTLOADER overlaps FLASH_BOOTLOADER_SETTINGS") +ASSERT((ORIGIN(FLASH_BOOTLOADER_SETTINGS) + LENGTH(FLASH_BOOTLOADER_SETTINGS)) <= (ORIGIN(FLASH) + LENGTH(FLASH)), + "FLASH_BOOTLOADER_SETTINGS extends past the end of FLASH") + /* produce a link error if there is not this amount of RAM available */ _minimum_heap_size = 0;