Hi,
First post here. I am using an MSP430FR5729 in a Bluetooth Low Energy application.
The MSP430 needs to receive over the air updates over Bluetooth. The program is too large to have two copies in the MSP430 RAM, but there is a large external SPI flash memory chip that can be written to. Here's how I see it working:
- Program is transferred over the air to the MSP430, which buffers and stores it in the flash memory in a dedicated location (with verification, CRC, etc.)
- MSP430 is rebooted
- On reboot, check memory location for a newer software version. If present, start update.
- A small boot loader subroutine runs that extracts the new software and overwrites the MSP430 program memory (without overwriting the boot loader).
The last step is the one I'm struggling with trying to figure our what the implementation looks like. The MSP430 has a bootstrap loader but I don't think this is what it's for. I don't have any experience doing software updates in this fashion so I really could use some advice!