(Rebootless) OTA Updates Firmware/Application

Hi everyone,

I have read in the OTA documentation that “By using the OTA Agent library, you can logically separate firmware updates and the application running on your devices.” [1]

Q1) Is firmware synonym to OS in this context?
Q2) Does that mean that I can partially update a device, by adding/removing/updating an application?
(I suppose changing the firmware only is more problematic, since the application contains references to it.)

In the same page, there is also a “Example Usage” of a firmware update, which ends with a reboot.

Q3) I suppose a reboot is always required after a firmware update, correct?
(due to dependencies/references, system state, etc.)
2) Is a reboot also required when applications are added/removed/updated?
3) Is it fundamentally possible to perform any OTA update without rebooting the device?

[1] docs. aws. amazon. com/freertos/latest/userguide/ota-update-library.html

Thanks in advance!

At the time of writing, by default (and in nearly all cases) FreeRTOS applications are single statically linked executables, so the OS code is statically linked with the application code. That means you cannot download the application separately from the OS. There are techniques that make the size of the download much smaller, if that is of interest.

The OTA agent provided with FreeRTOS requires a reboot - although you may be able to update it so you don’t need a physical reset, you will need at least a soft reboot so the updated application starts executing from the right place (i.e. the C startup code).