This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1310: Differentiate hard reset from software reset (also called warm reset)

Part Number: CC1310


Is it possible to differentiate a boot of cc1310 via a register (???):

(1) if it's a full boot (power was off before)

(2) if it's a reset toggle (the reset pin is toggled and the cc1310 was alive before)

(3)  if it's a software reset initiated by SysCtrlSystemReset

(4) if it's a software reset initiated by SBL CMD_RESET (after a flash and a RESET command initiated by the flasher)

I'm especially interested to identify the very first boot of cc1310 after a flashing procedure. In my case the reset command CMD_RESET is sent to CC1310. I'm looking for an 'easy' solution and not using internal NVS.

  • SysCtrlResetSourceGet !!!

  • Hi Gregoire,

    Be very careful with trying to detect warm resets. As described in the CC13x0/CC26x0 Technical Reference Manual, Section 6.7.2 Warm Resets:

    NOTE: Because warm reset does not reset the analog parts of the device, such as the radio, doing a warm reset will put the device in a partly unknown state. It is therefore strongly recommended to enable Warm Reset Converted to System Reset feature as described in the section above. Triggering a warm reset run-time can lead to problems such as unexpected behaviour or program freeze. The only situation where it is ok to not enable Warm Reset Converted to System Reset is during development and debugging if a SW problem is triggering a warm reset. In that situation, not enabling the warm to cold reset feature is typically required to identify the reset source.

    So to summarize, by default a warm reset will be converted to system reset, and hence SysCtrlResetSourceGet() will report a warm reset as a system reset.