1.9 OTA Bootloader
The OTA bootloader Library can be used to upgrade firmware on a target device without the need for an external programmer or debugger.
Features
-
Supported on Cortex-M and MIPS based MCUs, and MPUs
-
For MCUs, Bootloader uses dual bank Flash memory or external memory to store the application image
-
Dual Bank Flash Memory: Uses Harmony 3 NVM/NVMCTRL/EFC peripheral library to communicate with the internal dual bank Flash memory
-
External Memory: Uses Harmony 3 Serial Memory drivers to communicate with the associated serial memory. Below are the serial memory drivers used.
-
I2C EEPROM: AT24 Driver
-
SPI EEPROM: AT25 Driver
-
SPI Flash: SST26 Driver
-
QSPI Flash: SST26 Driver
-
-
-
For MPUs, Bootloader uses SD Card/NAND/Serial Flash memory to store the OTA application image
OTA Bootloader With Dual Bank Flash Memory (For MCUs)
- Bootloader Task (Dual Bank):
-
Uses Harmony 3 NVM/NVMCTRL/EFC peripheral library to read the control block (Metadata) stored in dual bank Flash memory
-
Checks for update in control block (Metadata)
-
Updates control block (Metadata) in dual bank Flash memory, swap bank and trigger reset
-
Jumps to the Application
-
Runs in Cooperative mode with other tasks in the system
-
OTA Bootloader With External Memory (For MCUs)
- Bootloader Task (External Memory):
-
Uses Serial Memory driver to read the control block (Metadata) stored in external memory
-
Checks for update in control block (Metadata)
-
Reads the application binary stored in external memory
-
Erases the Internal Flash memory
-
Programs the read binary into Flash memory
-
Verifies the programed application
-
Updates the control block (Metadata) in external memory
-
Jumps to the Application
-
Runs in Cooperative mode with other tasks in the system
-
OTA Bootloader With External Memory (For MPUs)
-
AT91Bootstrap loads MPU OTA bootloader from SD Card/NAND/Serial Flash memory to DDR memory and executes it
-
MPU OTA Bootloader Task:
-
Reads 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
-
Jumps to the OTA application
-
Runs in Cooperative mode with other tasks in the system
-
