summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2020-12-08 11:03:24 -0800
committerScott Shawcroft <scott@tannewt.org>2020-12-08 11:03:24 -0800
commitd0a806d7975ecc2c653d23ee48e463f38b4f1194 (patch)
treed2af46bcbdd5483ca22353152adbf93b7b4398d8
parent1df033465a366724fbbab5ff48082593722f7c41 (diff)
Enter safe mode after panic or brownout
Uses the IDF's reset reason. Does nothing before reset. Fixes #3389
-rw-r--r--ports/esp32s2/supervisor/port.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ports/esp32s2/supervisor/port.c b/ports/esp32s2/supervisor/port.c
index 6222cd290..5a50bda69 100644
--- a/ports/esp32s2/supervisor/port.c
+++ b/ports/esp32s2/supervisor/port.c
@@ -102,6 +102,14 @@ safe_mode_t port_init(void) {
return NO_HEAP;
}
+ esp_reset_reason_t reason = esp_reset_reason();
+ if (reason == ESP_RST_BROWNOUT) {
+ return BROWNOUT;
+ }
+ if (reason == ESP_RST_PANIC) {
+ return HARD_CRASH;
+ }
+
return NO_SAFE_MODE;
}