Selaa lähdekoodia

Added node.bootreason() to inspect boot cause.

Johny Mattsson 9 vuotta sitten
vanhempi
commit
7bd10e8a17
2 muutettua tiedostoa jossa 11 lisäystä ja 0 poistoa
  1. 3 0
      app/include/rom.h
  2. 8 0
      app/modules/node.c

+ 3 - 0
app/include/rom.h

@@ -39,6 +39,9 @@ extern unsigned char * base64_decode(const unsigned char *src, size_t len, size_
 extern void mem_init(void * start_addr);
 
 
+// 2, 3 = reset (module dependent?), 4 = wdt
+int rtc_get_reset_reason (void);
+
 // Hardware exception handling
 struct exception_frame
 {

+ 8 - 0
app/modules/node.c

@@ -414,6 +414,13 @@ static int node_setcpufreq(lua_State* L)
   return 1;
 }
 
+// Lua: code = bootreason()
+static int node_bootreason (lua_State *L)
+{
+  lua_pushnumber (L, rtc_get_reset_reason ());
+  return 1;
+}
+
 // Module function map
 #define MIN_OPT_LEVEL 2
 #include "lrodefs.h"
@@ -438,6 +445,7 @@ const LUA_REG_TYPE node_map[] =
   { LSTRKEY( "CPU80MHZ" ), LNUMVAL( CPU80MHZ ) },
   { LSTRKEY( "CPU160MHZ" ), LNUMVAL( CPU160MHZ ) },
   { LSTRKEY( "setcpufreq" ), LFUNCVAL( node_setcpufreq) },
+  { LSTRKEY( "bootreason" ), LFUNCVAL( node_bootreason) },
 // Combined to dsleep(us, option)
 // { LSTRKEY( "dsleepsetoption" ), LFUNCVAL( node_deepsleep_setoption) },
 #if LUA_OPTIMIZE_MEMORY > 0