Reset InformationApplication Interface > Common Application Interface

Description

Passing information when resetting into and out of the bootloader.

In order to signal to the bootloader that it should run, the application needs to write the BootloaderResetCause_t structure to the first address of RAM, setting BootloaderResetCause_t::reason to BOOTLOADER_RESET_REASON_BOOTLOAD.

The reset cause is only valid if BootloaderResetCause_t::signature is set to BOOTLOADER_RESET_SIGNATURE_VALID.

When the bootloader reboots back into the app, it sets the reset reason to BOOTLOADER_RESET_REASON_GO if the bootload succeeded, or BOOTLOADER_RESET_REASON_BADIMAGE if the bootload failed due to errors when parsing the upgrade image.

Note
The reset information is automatically filled out before reset if the bootloader_rebootAndInstall function is called.

Data Structures

struct  BootloaderResetCause_t
 Reset cause of the bootloader.
 

Macros

#define BOOTLOADER_RESET_REASON_UNKNOWN   0x0200u
 Unknown bootloader cause (should never occur)
 
#define BOOTLOADER_RESET_REASON_GO   0x0201u
 Bootloader caused reset telling app to run.
 
#define BOOTLOADER_RESET_REASON_BOOTLOAD   0x0202u
 Application requested that bootloader runs.
 
#define BOOTLOADER_RESET_REASON_BADIMAGE   0x0203u
 Bootloader detected bad external upgrade image.
 
#define BOOTLOADER_RESET_REASON_FATAL   0x0204u
 Fatal Error or assert in bootloader.
 
#define BOOTLOADER_RESET_REASON_FORCE   0x0205u
 Forced bootloader activation.
 
#define BOOTLOADER_RESET_REASON_OTAVALID   0x0206u
 OTA Bootloader mode activation.
 
#define BOOTLOADER_RESET_REASON_DEEPSLEEP   0x0207u
 Bootloader initiated deep sleep.
 
#define BOOTLOADER_RESET_REASON_BADAPP   0x0208u
 Application verification failed.
 
#define BOOTLOADER_RESET_REASON_UPGRADE   0x0209u
 Bootloader requested that first stage upgrades main bootloader.
 
#define BOOTLOADER_RESET_REASON_TIMEOUT   0x020Au
 Bootloader timed out waiting for upgrade image.
 
#define BOOTLOADER_RESET_SIGNATURE_VALID   0xF00Fu
 Reset signature is valid.
 
#define BOOTLOADER_RESET_SIGNATURE_INVALID   0xC33Cu
 Reset signature is invalid.