22. SUOTA Overview
In order to be able to update application software over-the-air, the DA145xx must be connected to an external non-volatile memory (SPI flash or EEPROM). In addition, several software components and tools are required:
Image Creation Tool
Non-volatile Memory Programming Tool
Each of these items is described in the following sections and the following video provides an overview of the SUOTA process.
Demonstration of Dialog SmartBond™ DA145xx SUOTA
The Software Update Over-the-Air procedure is based upon the use of a secondary bootloader. This bootloader uses the concept of a golden image ensuring that, even in the event of a power failure during an update, the device is always recoverable. The secondary bootloader resides in the external non-volatile memory, along with one or more application images. In addition to the secondary bootloader, DA145xx devices contain a ROM based bootloader that is executed (before the dual image bootloader) when a Power-on-Reset or Hardware Reset occurs.
22.1.1. ROM Bootloader
When a Power-on Reset occurs the ROM based bootloader on the DA145xx device is executed. This searches for an application image that it can load into internal RAM and execute.
22.1.2. Secondary Bootloader
The secondary bootloader is stored in external non-volatile memory. When the ROM bootloader executes, it locates the secondary bootloader and loads it into RAM. The secondary bootloader then searches the external non-volatile memory for an application image. Assuming one is located then this is loaded into RAM and executed.
22.2. Software Update Over-the-Air (SUOTA) Service
Dialog SUOTA service is instantiated as a GATT Primary Service. The service defines a control point by which it enables a peer device to initiate a software update and it defines two roles:
The SUOTA Initiator, which is the device that transmits the firmware image. It holds the role of the GATT Client for the SUOTA service and also the Central’s role for GAP.
The SUOTA Receiver, which receives the new software image, stores the image into the external SPI Flash/EEPROM device and runs the new image. It is the GATT Server for the SUOTA service and also holds the GAP Peripheral Role.
22.3. Image Creation & Non-volatile Memory Programming Tool
The Dialog SmartSnippets™ ToolBox contains a non-volatile memory programming tool that supports the creation of SUOTA images. Further details are provided in the following chapters.