Add reset reason reference implementation STM32

pull/10657/head
Steven Cartmell 2017-11-27 12:22:27 +00:00 committed by Filip Jagodzinski
parent 41878bc3de
commit 1ec22fee05
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,59 @@
#include "reset_reason_api.h"
#ifdef DEVICE_RESET_REASON
#include "device.h"
reset_reason_t hal_reset_reason_get(void)
{
#ifdef RCC_FLAG_SFTRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST)) {
return RESET_REASON_SOFTWARE;
}
#endif
#ifdef RCC_FLAG_BORRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_BORRST)) {
return RESET_REASON_BROWN_OUT;
}
#endif
#ifdef RCC_FLAG_PORRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST)) {
return RESET_REASON_POWER_ON;
}
#endif
#ifdef RCC_FLAG_PINRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST)) {
return RESET_REASON_PIN_RESET;
}
#endif
#ifdef RCC_FLAG_IWDGRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST)) {
return RESET_REASON_WATCHDOG;
}
#endif
#ifdef RCC_FLAG_WWDGRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST)) {
return RESET_REASON_WATCHDOG;
}
#endif
#ifdef RCC_FLAG_LPWRRST
if (__HAL_RCC_GET_FLAG(RCC_FLAG_LPWRRST)) {
return RESET_REASON_WAKE_LOW_POWER;
}
#endif
return RESET_REASON_UNKNOWN;
}
void hal_reset_reason_clear(void)
{
__HAL_RCC_CLEAR_RESET_FLAGS();
}
#endif // DEVICE_RESET_REASON

View File

@ -1748,6 +1748,7 @@
"PORTIN",
"PORTINOUT",
"PORTOUT",
"RESET_REASON",
"PWMOUT",
"SERIAL",
"SLEEP",