1
+ /* Print last reset reason of ESP32
2
+ * by Evandro Luis Copercini - 2017
3
+ * Public Domain License.
4
+ */
5
+
6
+ #include < rom/rtc.h>
7
+
8
+ void print_reset_reason (RESET_REASON reason)
9
+ {
10
+ switch ( reason)
11
+ {
12
+ case 1 : Serial.println (" POWERON_RESET" );break ; /* *<1, Vbat power on reset*/
13
+ case 3 : Serial.println (" SW_RESET" );break ; /* *<3, Software reset digital core*/
14
+ case 4 : Serial.println (" OWDT_RESET" );break ; /* *<4, Legacy watch dog reset digital core*/
15
+ case 5 : Serial.println (" DEEPSLEEP_RESET" );break ; /* *<5, Deep Sleep reset digital core*/
16
+ case 6 : Serial.println (" SDIO_RESET" );break ; /* *<6, Reset by SLC module, reset digital core*/
17
+ case 7 : Serial.println (" TG0WDT_SYS_RESET" );break ; /* *<7, Timer Group0 Watch dog reset digital core*/
18
+ case 8 : Serial.println (" TG1WDT_SYS_RESET" );break ; /* *<8, Timer Group1 Watch dog reset digital core*/
19
+ case 9 : Serial.println (" RTCWDT_SYS_RESET" );break ; /* *<9, RTC Watch dog Reset digital core*/
20
+ case 10 : Serial.println (" INTRUSION_RESET" );break ; /* *<10, Instrusion tested to reset CPU*/
21
+ case 11 : Serial.println (" TGWDT_CPU_RESET" );break ; /* *<11, Time Group reset CPU*/
22
+ case 12 : Serial.println (" SW_CPU_RESET" );break ; /* *<12, Software reset CPU*/
23
+ case 13 : Serial.println (" RTCWDT_CPU_RESET" );break ; /* *<13, RTC Watch dog Reset CPU*/
24
+ case 14 : Serial.println (" EXT_CPU_RESET" );break ; /* *<14, for APP CPU, reseted by PRO CPU*/
25
+ case 15 : Serial.println (" RTCWDT_BROWN_OUT_RESET" );break ;/* *<15, Reset when the vdd voltage is not stable*/
26
+ case 16 : Serial.println (" RTCWDT_RTC_RESET" );break ; /* *<16, RTC Watch dog reset digital core and rtc module*/
27
+ default : Serial.println (" NO_MEAN" );
28
+ }
29
+ }
30
+
31
+ void setup () {
32
+ // put your setup code here, to run once:
33
+ Serial.begin (115200 );
34
+ delay (2000 );
35
+
36
+ Serial.println (" CPU0 reset reason: " );
37
+ print_reset_reason (rtc_get_reset_reason (0 ));
38
+
39
+ Serial.println (" CPU1 reset reason: " );
40
+ print_reset_reason (rtc_get_reset_reason (1 ));
41
+
42
+ }
43
+
44
+ void loop () {
45
+ // put your main code here, to run repeatedly:
46
+
47
+ }
0 commit comments