3 Replies Latest reply on Oct 11, 2017 2:10 AM by himam_31

    Best way going about implementing an OTA update?

      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!