Added acess to RTC memory.

Implements https://github.com/nodemcu/nodemcu-firmware/issues/219.
This commit is contained in:
slaff 2015-02-13 22:05:57 +00:00
parent 2c5c00a56a
commit b19f583465
1 changed files with 27 additions and 0 deletions

View File

@ -169,6 +169,31 @@ static int tmr_time( lua_State* L )
return 1; return 1;
} }
// Lua: mem_write(content, start_address)
static bool tmr_mem_write( lua_State* L)
{
size_t len;
const char *content = luaL_checklstring( L, 1, &len );
uint8_t address = (uint8_t)luaL_checkinteger( L, 2);
uint8_t size = (uint8_t)luaL_checkinteger( L, 3);
if (size > len) {
return luaL_error( L, "wrong size" );
}
return system_rtc_mem_write(address, &content, size);
}
// Lua: mem_read(start_address, bytes), return the read data from the RTC inner memory
static void* tmr_mem_read( lua_State* L)
{
uint8_t address = (uint8_t)luaL_checkinteger( L, 1);
uint8_t len = (uint8_t)luaL_checkinteger( L, 2);
void *des_addr;
system_rtc_mem_read(address, &des_addr, len);
return des_addr;
}
// Module function map // Module function map
#define MIN_OPT_LEVEL 2 #define MIN_OPT_LEVEL 2
#include "lrodefs.h" #include "lrodefs.h"
@ -180,6 +205,8 @@ const LUA_REG_TYPE tmr_map[] =
{ LSTRKEY( "stop" ), LFUNCVAL( tmr_stop ) }, { LSTRKEY( "stop" ), LFUNCVAL( tmr_stop ) },
{ LSTRKEY( "wdclr" ), LFUNCVAL( tmr_wdclr ) }, { LSTRKEY( "wdclr" ), LFUNCVAL( tmr_wdclr ) },
{ LSTRKEY( "time" ), LFUNCVAL( tmr_time ) }, { LSTRKEY( "time" ), LFUNCVAL( tmr_time ) },
{ LSTRKEY( "mem_write"), LFUNCVAL( tmr_mem_write ) },
{ LSTRKEY( "mem_read"), LFUNCVAL( tmr_mem_read ) },
#if LUA_OPTIMIZE_MEMORY > 0 #if LUA_OPTIMIZE_MEMORY > 0
#endif #endif