mirror of
https://github.com/esphome/esphome.git
synced 2025-02-07 13:40:59 +00:00
[debug] Detailed reset reason (#7729)
Co-authored-by: Ramil Valitov <ramilvalitov@gmail.com>
This commit is contained in:
parent
a6957b9d3b
commit
e04743e381
@ -30,6 +30,57 @@ static const char *const TAG = "debug";
|
|||||||
|
|
||||||
std::string DebugComponent::get_reset_reason_() {
|
std::string DebugComponent::get_reset_reason_() {
|
||||||
std::string reset_reason;
|
std::string reset_reason;
|
||||||
|
switch (esp_reset_reason()) {
|
||||||
|
case ESP_RST_POWERON:
|
||||||
|
reset_reason = "Reset due to power-on event";
|
||||||
|
break;
|
||||||
|
case ESP_RST_EXT:
|
||||||
|
reset_reason = "Reset by external pin";
|
||||||
|
break;
|
||||||
|
case ESP_RST_SW:
|
||||||
|
reset_reason = "Software reset via esp_restart";
|
||||||
|
break;
|
||||||
|
case ESP_RST_PANIC:
|
||||||
|
reset_reason = "Software reset due to exception/panic";
|
||||||
|
break;
|
||||||
|
case ESP_RST_INT_WDT:
|
||||||
|
reset_reason = "Reset (software or hardware) due to interrupt watchdog";
|
||||||
|
break;
|
||||||
|
case ESP_RST_TASK_WDT:
|
||||||
|
reset_reason = "Reset due to task watchdog";
|
||||||
|
break;
|
||||||
|
case ESP_RST_WDT:
|
||||||
|
reset_reason = "Reset due to other watchdogs";
|
||||||
|
break;
|
||||||
|
case ESP_RST_DEEPSLEEP:
|
||||||
|
reset_reason = "Reset after exiting deep sleep mode";
|
||||||
|
break;
|
||||||
|
case ESP_RST_BROWNOUT:
|
||||||
|
reset_reason = "Brownout reset (software or hardware)";
|
||||||
|
break;
|
||||||
|
case ESP_RST_SDIO:
|
||||||
|
reset_reason = "Reset over SDIO";
|
||||||
|
break;
|
||||||
|
#ifdef USE_ESP32_VARIANT_ESP32
|
||||||
|
#if (ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 4))
|
||||||
|
case ESP_RST_USB:
|
||||||
|
reset_reason = "Reset by USB peripheral";
|
||||||
|
break;
|
||||||
|
case ESP_RST_JTAG:
|
||||||
|
reset_reason = "Reset by JTAG";
|
||||||
|
break;
|
||||||
|
case ESP_RST_EFUSE:
|
||||||
|
reset_reason = "Reset due to efuse error";
|
||||||
|
break;
|
||||||
|
case ESP_RST_PWR_GLITCH:
|
||||||
|
reset_reason = "Reset due to power glitch detected";
|
||||||
|
break;
|
||||||
|
case ESP_RST_CPU_LOCKUP:
|
||||||
|
reset_reason = "Reset due to CPU lock up (double exception)";
|
||||||
|
break;
|
||||||
|
#endif // ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 4)
|
||||||
|
#endif // USE_ESP32_VARIANT_ESP32
|
||||||
|
default: // Includes ESP_RST_UNKNOWN
|
||||||
switch (rtc_get_reset_reason(0)) {
|
switch (rtc_get_reset_reason(0)) {
|
||||||
case POWERON_RESET:
|
case POWERON_RESET:
|
||||||
reset_reason = "Power On Reset";
|
reset_reason = "Power On Reset";
|
||||||
@ -134,6 +185,8 @@ std::string DebugComponent::get_reset_reason_() {
|
|||||||
default:
|
default:
|
||||||
reset_reason = "Unknown Reset Reason";
|
reset_reason = "Unknown Reset Reason";
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
ESP_LOGD(TAG, "Reset Reason: %s", reset_reason.c_str());
|
ESP_LOGD(TAG, "Reset Reason: %s", reset_reason.c_str());
|
||||||
return reset_reason;
|
return reset_reason;
|
||||||
}
|
}
|
||||||
@ -294,4 +347,4 @@ void DebugComponent::update_platform_() {
|
|||||||
|
|
||||||
} // namespace debug
|
} // namespace debug
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
#endif
|
#endif // USE_ESP32
|
||||||
|
Loading…
x
Reference in New Issue
Block a user