Hi there! –
We’ve been working for a week on the ability for our product to do automatic firmware update. In production, firmware update will happen through BLE or Wifi. But for the sake of simplicity and to make sure we understand and master all the pieces, we are doing it via USB for the moment.
We took inspiration from the best:
- ARMmbed/mbed-os-example-bootloader
- ARMmbed/mbed-bootloader
- @janjongboom’s Firmware updates on Mbed OS 5.5 with FlashIAP
- janjongboom/mbed-os-example-fota-http
We are currently using the application .hex
file to upload our firmware update. From the bootloader, we receive and parse the .hex
and write it to the MCU flash.
We are wondering if we should do it with the .bin
file instead. The idea (and we might be terribly wrong) would be to:
- in the application, receive the update as
.bin
and store it to QSPI Flash - reboot the device
- have the bootloader flash the new firmware (read from QSPI Flash) with FlashIAP to the MCU, “packet by packet”
- launch the application
Would that work? And if so, .bin
or .hex
?
As I said, we have been working on that for very little time, so we might be missing the big picture. Any advice, warning or resources that might help us in the future regarding the whole process would be greatly appreciated!
Best,
– Ladislas