We are working on designing Firmware Over the Air features on the iMX RT1020 MCU. We have defined three partition in external QSPI flash which is XIP.
0x60000000 - Bootloader
0x60081000 - Firmware 1
0x60211000 - Firmware 2
Initially, the bootloader will boot from the firmware stored at memory location 0x60081000. When the request for firmware upgrade receives, the device will check the active firmware partition and will download the image at inactive partition. For the first firmware upgrade, image will be downloaded at memory location 0x60211000.
We need to now boot from the second partition which is 0x60211000.
Question: Is it possible to boot an image stored at address 0x60211000 if binary is compiled with flash configuration in the MCUXpresso as below, (first partition address)
BOARD_FLASH (rx) : ORIGIN = 0x60081000, LENGTH = 0x800000 /* 8M bytes (alias Flash) */
Is there any way we can configure the addresses relative rather than absolute from the linker script.
You want to compile an image with one address, but you want to execute it from a completely different address, correct? If so, this is not possible.
Thanks for the information.
You have correctly understood my concern. Yes, It is not possible. We will look for some alternatives.