Reset InformationApplication Interface > Common Application Interface

Description

Passing information when resetting into and out of the bootloader.

To signal the bootloader to 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_REASON_FAULT 0x020Bu
Soft-reset was forced to handle a fault.
#define BOOTLOADER_RESET_REASON_TZ_FAULT 0x020Cu
Soft-reset was forced to handle a security fault.
#define BOOTLOADER_RESET_SIGNATURE_VALID 0xF00Fu
Reset signature is valid.
#define BOOTLOADER_RESET_SIGNATURE_INVALID 0xC33Cu
Reset signature is invalid.