mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-18 23:03:34 +03:00
Merge pull request #1495 from hallard/master
Added function to return reset reason in human readable format
This commit is contained in:
@ -329,6 +329,28 @@ bool EspClass::checkFlashConfig(bool needsEquals) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String EspClass::getResetReason(void) {
|
||||
char buff[32];
|
||||
if (resetInfo.reason == REASON_DEFAULT_RST) { // normal startup by power on
|
||||
strcpy_P(buff, PSTR("Power on"));
|
||||
} else if (resetInfo.reason == REASON_WDT_RST) { // hardware watch dog reset
|
||||
strcpy_P(buff, PSTR("Hardware Watchdog"));
|
||||
} else if (resetInfo.reason == REASON_EXCEPTION_RST) { // exception reset, GPIO status won’t change
|
||||
strcpy_P(buff, PSTR("Exception"));
|
||||
} else if (resetInfo.reason == REASON_SOFT_WDT_RST) { // software watch dog reset, GPIO status won’t change
|
||||
strcpy_P(buff, PSTR("Software Watchdog"));
|
||||
} else if (resetInfo.reason == REASON_SOFT_RESTART) { // software restart ,system_restart , GPIO status won’t change
|
||||
strcpy_P(buff, PSTR("Software/System restart"));
|
||||
} else if (resetInfo.reason == REASON_DEEP_SLEEP_AWAKE) { // wake up from deep-sleep
|
||||
strcpy_P(buff, PSTR("Deep-Sleep Wake"));
|
||||
} else if (resetInfo.reason == REASON_EXT_SYS_RST) { // external system reset
|
||||
strcpy_P(buff, PSTR("External System"));
|
||||
} else {
|
||||
strcpy_P(buff, PSTR("Unknown"));
|
||||
}
|
||||
return String(buff);
|
||||
}
|
||||
|
||||
String EspClass::getResetInfo(void) {
|
||||
if(resetInfo.reason != 0) {
|
||||
char buff[200];
|
||||
|
@ -131,6 +131,7 @@ class EspClass {
|
||||
uint32_t getFreeSketchSpace();
|
||||
bool updateSketch(Stream& in, uint32_t size, bool restartOnFail = false, bool restartOnSuccess = true);
|
||||
|
||||
String getResetReason();
|
||||
String getResetInfo();
|
||||
struct rst_info * getResetInfoPtr();
|
||||
|
||||
|
@ -6,6 +6,7 @@ title: Change Log
|
||||
|
||||
### Core
|
||||
|
||||
- Add function to know last reset resaon.
|
||||
- Allow control of enabling debug and debug level from IDE
|
||||
- Make HardwareSerial::begin() and end() interrupt safe
|
||||
- Put HardwareSerial and cbuf methods called from interrupt context in RAM
|
||||
|
@ -83,6 +83,8 @@ APIs related to deep sleep and watchdog timer are available in the `ESP` object,
|
||||
|
||||
`ESP.restart()` restarts the CPU.
|
||||
|
||||
`ESP.getResetReason()` returns String containing the last reset resaon in human readable format.
|
||||
|
||||
`ESP.getFreeHeap()` returns the free heap size.
|
||||
|
||||
`ESP.getChipId()` returns the ESP8266 chip ID as a 32-bit integer.
|
||||
|
@ -23,13 +23,13 @@
|
||||
#endif
|
||||
|
||||
enum rst_reason {
|
||||
REASON_DEFAULT_RST = 0,
|
||||
REASON_WDT_RST = 1,
|
||||
REASON_EXCEPTION_RST = 2,
|
||||
REASON_SOFT_WDT_RST = 3,
|
||||
REASON_SOFT_RESTART = 4,
|
||||
REASON_DEEP_SLEEP_AWAKE = 5,
|
||||
REASON_EXT_SYS_RST = 6
|
||||
REASON_DEFAULT_RST = 0, /* normal startup by power on */
|
||||
REASON_WDT_RST = 1, /* hardware watch dog reset */
|
||||
REASON_EXCEPTION_RST = 2, /* exception reset, GPIO status won’t change */
|
||||
REASON_SOFT_WDT_RST = 3, /* software watch dog reset, GPIO status won’t change */
|
||||
REASON_SOFT_RESTART = 4, /* software restart ,system_restart , GPIO status won’t change */
|
||||
REASON_DEEP_SLEEP_AWAKE = 5, /* wake up from deep-sleep */
|
||||
REASON_EXT_SYS_RST = 6 /* external system reset */
|
||||
};
|
||||
|
||||
struct rst_info{
|
||||
|
Reference in New Issue
Block a user