Overview

This section explains the major concepts involved in the OAD process from a high level. The concepts here will be expanded upon further in the following sections. Some concepts, such as the Boot Image Manager (BIM), may vary in their implementation details. Wherever possible, the concepts will be covered in this chapter with their implementation details covered in the following chapters.

OAD Types

There are two methods of implementing a firmware update using over the air download process. The key difference between the two methods is the location of the downloaded image.

On-chip:During On-Chip OAD, the downloaded image is written to internal flash, allowing for a single chip OAD solution.
Off-chip:Off-Chip OAD stores the downloaded image in an external flash part, requiring a two chip OAD solution. The below figure shows a comparison of different OAD methods. Each type of OAD has associated trade offs and benefits which will be discussed in their respective sections.
../../_images/aafig-d044b74d01212e2900815585631af38f5bb8ec74.png

Despite their differences, both OAD methods share the same firmware image header format.

Table 12. OAD Types Overview.
OAD Type Advantages Limitations
On-chip
  • No external flash required
  • Application size restriction
  • Stack image cannot be upgraded
Off-chip
  • Ability to store multiple / backup images
  • Full application + stack upgrade
  • Maximum application size
  • Low power external flash required

Boot Image Manager (BIM)

The boot image manager (BIM) is a bootloader that runs after reset and copies a new application image either from internal or external flash to the destionation location. The BIM is a very simple application. It only checks whether a new image has been copied to the system. It is the application’s responsibility to receive the new image and to store it using the OAD service.

BIM’s implementation varies slightly for On-chip and Off-chip OAD solutions, thus there is a separate BIM example project for each.

Halt In Boot (HIB)

There is a bug with the emulation software package that would cause the processor to enter Halt In Boot (HIB) on the next bootup when previously connected to JTAG. In the case of OAD, that is when a system reset is invoked at the end of an OAD procedure.

Note

This only affects devices connected to JTAG, such as the XDS110 on LaunchPads. This issue should not appear in field devices or devices that are not connected to JTAG in general.

The reason why the bug occurs is that the TCK pin (which powers up the JTAG power domain) is left in tri-state. When a system reset occurs after an active debug connection, the TCK pin could potentially experience unwanted toggling from noise. HIB erroneously detects this as debug activity, and subsequently halts the processor.

../../_images/oad_hib.png

Figure 60. Reset problems after programming with JTAG

A symptom of this bug occurring is that OAD does not reboot into BIM after a successful OAD. A temporary workaround is to simply unplug/replug or hard reset the device, and the device will boot as normal.

However, a permanent fix is available. As of version 8.0.27.9 of the emulation software package, the XDS110 emulator now drives the TCK pin high instead of leaving it in tri-state. This removes any unwanted toggling on the TCK pin after a system reset, which no longer triggers HIB.

To update the emulation software packages, start by downloading the latest XDS Emulation Software Package. Then, depending on which tool you are using, follow the corresponding step-by-step guide below.

  • For Flash Programmer 2:
    1. Run the above installer
    2. Copy the contents of the emulation software package to <Flash Programmer 2>/config/xds/*
  • For Code Composer Studio:
    1. Run the above installer
    2. Follow the steps described in Section Manual CCS Installation from the XDS Emulation Software Package page
  • For IAR:
    1. Run the above installer
    2. Change the debugger options of the project to point to the newly installed package
../../_images/oad_hib_update_xds.png

Figure 61. Update XDS emulation software package in IAR

Example Projects

The SDK provides example projects that show the OAD concept in action.

Table 13. OAD example projects in the SimpleLink CC13x0 SDK for EasyLink.
OAD Type BIM Project Application Project
On-chip bim rfWsnNodeIntFlashOadClient
Off-chip bim_extflash rfWsnNodeExtFlashOadClient