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
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
OTA Bootloader with Dual Bank Flash Memory
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
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