/***************************************************************************//** * @brief * Clear the reset cause register. * * @details * This function clears all the reset cause bits of the RSTCAUSE register. * The reset cause bits must be cleared by SW before a new reset occurs, * otherwise reset causes may accumulate. See @ref RMU_ResetCauseGet(). ******************************************************************************/ void RMU_ResetCauseClear(void) { RMU->CMD = RMU_CMD_RCCLR; #if defined(EMU_AUXCTRL_HRCCLR) { uint32_t locked; /* Clear some reset causes not cleared with RMU CMD register */ /* (If EMU registers locked, they must be unlocked first) */ locked = EMU->LOCK & EMU_LOCK_LOCKKEY_LOCKED; if (locked) { EMU_Unlock(); } BUS_RegBitWrite(&(EMU->AUXCTRL), _EMU_AUXCTRL_HRCCLR_SHIFT, 1); BUS_RegBitWrite(&(EMU->AUXCTRL), _EMU_AUXCTRL_HRCCLR_SHIFT, 0); if (locked) { EMU_Lock(); } } #endif }
/***************************************************************************//** * @brief * Clear the reset cause register. ******************************************************************************/ void RMU_ResetCauseClear(void) { uint32_t locked; RMU->CMD = RMU_CMD_RCCLR; /* Clear some reset causes not cleared with RMU CMD register */ /* (If EMU registers locked, they must be unlocked first) */ locked = EMU->LOCK & EMU_LOCK_LOCKKEY_LOCKED; if (locked) { EMU_Unlock(); } BITBAND_Peripheral(&(EMU->AUXCTRL), 0, 1); BITBAND_Peripheral(&(EMU->AUXCTRL), 0, 0); if (locked) { EMU_Lock(); } }