Skip to main content

Reference: Reboot Reason IDs

This page documents identifiers for different reboot reasons. For more information about reboot reason tracking, check out one of these pages:

The table also lists the enum names from the source file reboot_reason_types.h in the MCU SDK.

Expected Reboot Reasons

NameID (decimal)ID (hex)MCU SDK enumNotes
Unspecified00x0000kMfltRebootReason_Unknown
User Shutdown10x0001kMfltRebootReason_UserShutdown
User Reset20x0002kMfltRebootReason_UserReset
Firmware Update30x0003kMfltRebootReason_FirmwareUpdate
Low Power40x0004kMfltRebootReason_LowPowerSoftware shut down due to the battery level being too low.
Debugger Halted50x0005kMfltRebootReason_DebuggerHalted
Button Reset60x0006kMfltRebootReason_ButtonReset
Power On Reset70x0007kMfltRebootReason_PowerOnReset
Software Reset80x0008kMfltRebootReason_SoftwareReset
Deep Sleep90x0009kMfltRebootReason_DeepSleepCPU went through a full reboot due to exit from lowest power state
Pin Reset100x000AkMfltRebootReason_PinResetCPU reset pin was toggled
Self Test110x000BkMfltRebootReason_SelfTestThe Self Test component caused a reset

Unexpected Reboot Reasons

NameID (decimal)ID (hex)MCU SDK enumNotes
Unexpected Reset327680x8000kMfltRebootReason_UnknownErrorCan be used to flag an unexpected reset path, i.e the CPU reset without any reboot logic getting invoked.
Assert327690x8001kMfltRebootReason_Assert
Watchdog (Deprecated)327700x8002kMfltRebootReason_WatchdogDeprecatedDeprecated in favor of HardwareWatchdog & SoftwareWatchdog. This way, the amount of watchdogs not caught by software can be easily tracked.
Brownout Reset327710x8003kMfltRebootReason_BrownOutReset
Nmi327720x8004kMfltRebootReason_NmiNon-Maskable Interrupt.
Hardware Watchdog327730x8005kMfltRebootReason_HardwareWatchdogMore details about nomenclature in https://mflt.io/root-cause-watchdogs
Software Watchdog327740x8006kMfltRebootReason_SoftwareWatchdogMore details about nomenclature in https://mflt.io/root-cause-watchdogs
Clock Failure327750x8007kMfltRebootReason_ClockFailureA reset triggered due to the CPU losing a stable clock. This can happen, for example, if power to the clock is cut or the lock for the PLL is lost.
Kernel Panic327760x8008kMfltRebootReason_KernelPanicA software reset triggered when the OS or RTOS end-user code is running on top of identifies a fatal error condition.
Firmw Update Error327770x8009kMfltRebootReason_FirmwareUpdateErrorA reset triggered when an attempt to upgrade to a new OTA image has failed and a rollback to a previous version was initiated.
Out of Memory327780x800AkMfltRebootReason_OutOfMemoryA software reset triggered due to a dynamic memory (heap) allocation failure.
Stack Overflow327790x800BkMfltRebootReason_StackOverflowA software reset triggered due to a stack overflow error.

ARM-specific Error Reboot Reasons

Bus Faults

NameID (decimal)ID (hex)MCU SDK enum
Bus Fault371200x9100kMfltRebootReason_BusFault
Ibuserr371210x9101
Preciserr371220x9102
Impreciserr371230x9103
Unstkerr371240x9104
Stkerr371250x9105
Lsperr371260x9106
Bfarvalid371270x9107

Memory Faults

NameID (decimal)ID (hex)MCU SDK enum
Mem Fault373760x9200kMfltRebootReason_MemFault
Iaccviol373770x9201
Daccviol373780x9202
Munstkerr373790x9203
Mstkerr373800x9204
Mlsperr373810x9205
Mmarvalid373820x9206

Usage Faults

NameID (decimal)ID (hex)MCU SDK enum
Usage Fault376320x9300kMfltRebootReason_UsageFault
Undefinstr376330x9301
Invstate376340x9302
Invpc376350x9303
Nocp376360x9304
Unaligned376370x9305
Divbyzero376380x9306

Misc.

NameID (decimal)ID (hex)MCU SDK enumNotes
Hard Fault378880x9400kMfltRebootReason_HardFault
Lockup378890x9401kMfltRebootReason_LockupA reset which is triggered when the processor faults while already executing from a fault handler.