- Newest
- Most votes
- Most comments
Hi. If you didn't already find it, please review the OTA design documentation. This explains the software architecture in detail.
The AWS IoT OTA library is the at the centre of all this. It's a highly portable pure ANSI C library, free of any operating system dependencies. And it is the OTA agent implementation. It offers a public API consisting of only a handful of functions. You call these from your application firmware. An example implementation (on FreeRTOS) can be found here: https://github.com/aws/amazon-freertos/blob/main/demos/ota/ota_demo_core_mqtt/ota_demo_core_mqtt.c
The AWS IoT OTA mechanism is built on top of AWS IoT Core Jobs. OTA is a job with a special pre-defined job document. The AWS IoT OTA library processes incoming jobs, and specifically the OTA job document.
An OTA update is initiated on the cloud side from the console or from a CLI or SDK call of the relevant API. This creates a job with an OTA job document. The OTA agent on the device polls the job queue and sees when the job, with OTA job document, has been made available.
The OTA PAL (Platform Abstraction Layer) is a layer you need to develop (to match a pre-defined API) to port the OTA library to your device. It abstracts the storage of the new binary file in your device, amongst other things. You can find some reference implementations here:
- https://github.com/aws/amazon-freertos/tree/main/vendors/espressif/boards/ports/ota_pal_for_aws
- https://github.com/aws/amazon-freertos/tree/main/vendors/ti/boards/cc3220_launchpad/ports/ota_pal_for_aws
- https://github.com/aws/amazon-freertos/tree/main/vendors/nordic/boards/nrf52840-dk/ports/ota_pal_for_aws
Finally, the file context is just a data structure used by the OTA agent to remember the current state of its processing of a particular file. The OTA update contains one or more files (and very often just one file, being a single firmware binary image file).
Relevant content
- asked 9 months ago
- asked 2 years ago
- AWS OFFICIALUpdated 14 days ago
- AWS OFFICIALUpdated 2 years ago
- How do I raise the priority of agent to agent or agent to queue transferred calls in Amazon Connect?AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated a year ago