Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
Looking for the best way to implement a firmware updates over the air. It will be a single application. After some thought, I've came up with some possible solutions.
Using Dual-application bootloader:
Since the Cortex-M3 memory cannot be remapped, 2 binaries would have to be distributed (application 1 and application 2). App 1 is running, OTA update function would download app 2, flash app 2, and set it as active in the metadata. If app 2 is running, OTA function would update app 1.
Seems like keeping up with 2 application versions would be a chore, but would be quicker to implement.
Modifying the bootloader:
Instead of running the Dual-app. Just run a single application. Partition off the flash to give space for the update. Download the update to the partition, once integrity is checked, reboot and enter the bootloader. Bootloader will reflash the application with what it downloaded.
The example code seems to encompass the PSoC4 and BLE stack. Over the air firmware updates will be over a 3rd party 900mhz packet radio. The device is the a PSOC5. I'll give them a once over and see if they are helpful to my project.