I'm starting work on a custom I2C bootloader for the msp430fr5969. (MSP430FR59691 won't work for me because I need a direct path to a rad-hard system in the future, and I want dual image support).
My ultimate goal is to have two image spaces, and at startup, check the CRC of the current image. If the CRC fails, fall back to the alternate image. If the alternate image CRC fails, fall back to the bootloader, and wait for a new image. I am also using information memory to store system information that is protected from overwrite when a new image is loaded.
When I look at MSP430FRBOOT, there is a dual image example for the msp430fr5969 using both the UART or SPI. I've been looking at the linker command file, and it's not called out in there that there are two images, so the images seem to be sharing some space, but I'm not sure how that is managed.
I was hoping to keep the two images as separate as possible, which I've seen done on other systems, but maybe that requires distinct flash/fram banks? The system I have seen do this did have NAND flash for main memory, and I think a separate NOR flash for the bootloader itself.
Is there a recommended way, in the linker file or in my code, to strongly partition the memory space for the custom bootloader and the two apps? Am I going overboard for a device with built-in memory?
Thanks,
Paul