Jump to main content

##

# 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