mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-21 21:22:31 +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;
|
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) {
|
String EspClass::getResetInfo(void) {
|
||||||
if(resetInfo.reason != 0) {
|
if(resetInfo.reason != 0) {
|
||||||
char buff[200];
|
char buff[200];
|
||||||
|
@ -131,6 +131,7 @@ class EspClass {
|
|||||||
uint32_t getFreeSketchSpace();
|
uint32_t getFreeSketchSpace();
|
||||||
bool updateSketch(Stream& in, uint32_t size, bool restartOnFail = false, bool restartOnSuccess = true);
|
bool updateSketch(Stream& in, uint32_t size, bool restartOnFail = false, bool restartOnSuccess = true);
|
||||||
|
|
||||||
|
String getResetReason();
|
||||||
String getResetInfo();
|
String getResetInfo();
|
||||||
struct rst_info * getResetInfoPtr();
|
struct rst_info * getResetInfoPtr();
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ title: Change Log
|
|||||||
|
|
||||||
### Core
|
### Core
|
||||||
|
|
||||||
|
- Add function to know last reset resaon.
|
||||||
- Allow control of enabling debug and debug level from IDE
|
- Allow control of enabling debug and debug level from IDE
|
||||||
- Make HardwareSerial::begin() and end() interrupt safe
|
- Make HardwareSerial::begin() and end() interrupt safe
|
||||||
- Put HardwareSerial and cbuf methods called from interrupt context in RAM
|
- 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.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.getFreeHeap()` returns the free heap size.
|
||||||
|
|
||||||
`ESP.getChipId()` returns the ESP8266 chip ID as a 32-bit integer.
|
`ESP.getChipId()` returns the ESP8266 chip ID as a 32-bit integer.
|
||||||
|
@ -23,13 +23,13 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum rst_reason {
|
enum rst_reason {
|
||||||
REASON_DEFAULT_RST = 0,
|
REASON_DEFAULT_RST = 0, /* normal startup by power on */
|
||||||
REASON_WDT_RST = 1,
|
REASON_WDT_RST = 1, /* hardware watch dog reset */
|
||||||
REASON_EXCEPTION_RST = 2,
|
REASON_EXCEPTION_RST = 2, /* exception reset, GPIO status won’t change */
|
||||||
REASON_SOFT_WDT_RST = 3,
|
REASON_SOFT_WDT_RST = 3, /* software watch dog reset, GPIO status won’t change */
|
||||||
REASON_SOFT_RESTART = 4,
|
REASON_SOFT_RESTART = 4, /* software restart ,system_restart , GPIO status won’t change */
|
||||||
REASON_DEEP_SLEEP_AWAKE = 5,
|
REASON_DEEP_SLEEP_AWAKE = 5, /* wake up from deep-sleep */
|
||||||
REASON_EXT_SYS_RST = 6
|
REASON_EXT_SYS_RST = 6 /* external system reset */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rst_info{
|
struct rst_info{
|
||||||
|
Reference in New Issue
Block a user