Best way going about implementing an OTA update?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

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.

Starting to lean towards this solution.

Open to any opinions. Thanks!

0 Likes
1 Solution
3 Replies
Anonymous
Not applicable

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.

0 Likes