1.3 MPU OTA Bootloader - SD/NAND/Serial Flash
This example application shows how to use the MPU OTA Bootloader Library to bootload an application from SD/NAND/Serial Flash memory and receives new application image using RNBD and write it to SD/NAND/Serial Flash memory.
MPU OTA Bootloader and Applications Block Diagram

OTA Bootloader
This is a bootloader application which resides from:
OTA Bootloader stored into SD/NAND/Serial Flash memory
OTA Bootloader executes from DDR memory. AT91Bootstrap loads OTA bootloader from SD/NAND/Serial Flash memory to DDR memory and executes it.
Then OTA Bootloader loads OTA application image from SD/NAND/Serial Flash memory to DDR memory and executes it
Performs Below Operation:
Read the metadata (image size) stored in the external memory.
Reads the OTA application binary stored from the external memory and Programs the binary to the DDR memory.
Run OTA application as below:
Calls the SYS_Deinitialize() function which releases the resources used. This Function is device specific and has to be implemented based on application requirement.
Jumps to application space to run the OTA application
OTA Application
This is a OTA application which resides from:
- OTA Application stored into SD/NAND/Serial Flash memory
It blinks an LED and provides console output
It calls the OTA_SERVICE_Tasks() function which receives the binary over OTA to be programmed into the external memory
Once the binary is received and programmed into the external memory, it generates a CRC32 value over programmed external memory space and verifies it against the received CRC32
If verification is successful then it updates the metadata (image size) and trigger reset to run new application binary through OTA bootloader
Development Kits
The following table provides links to documentation on how to build and run OTA bootloader and application on different development kits
