From 1cc81ed449fe51c787d002e786cd5afe5c632f97 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 11 Apr 2016 01:16:38 +0300 Subject: [PATCH] esp8266/modesp: Add freemem() and meminfo() functions. They call into vendor SDK functions system_get_free_heap_size() and system_print_meminfo() respectively. --- esp8266/modesp.c | 13 +++++++++++++ esp8266/qstrdefsport.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/esp8266/modesp.c b/esp8266/modesp.c index 3a82cc1f20..83d0c4a11f 100644 --- a/esp8266/modesp.c +++ b/esp8266/modesp.c @@ -617,6 +617,17 @@ STATIC mp_obj_t esp_neopixel_write_(mp_obj_t pin, mp_obj_t buf, mp_obj_t is800k) } STATIC MP_DEFINE_CONST_FUN_OBJ_3(esp_neopixel_write_obj, esp_neopixel_write_); +STATIC mp_obj_t esp_freemem() { + return MP_OBJ_NEW_SMALL_INT(system_get_free_heap_size()); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_freemem_obj, esp_freemem); + +STATIC mp_obj_t esp_meminfo() { + system_print_meminfo(); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_meminfo_obj, esp_meminfo); + STATIC const mp_map_elem_t esp_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_esp) }, @@ -632,6 +643,8 @@ STATIC const mp_map_elem_t esp_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&esp_getaddrinfo_obj }, #endif { MP_OBJ_NEW_QSTR(MP_QSTR_neopixel_write), (mp_obj_t)&esp_neopixel_write_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_freemem), (mp_obj_t)&esp_freemem_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_meminfo), (mp_obj_t)&esp_meminfo_obj }, #if MODESP_INCLUDE_CONSTANTS { MP_OBJ_NEW_QSTR(MP_QSTR_SLEEP_NONE), diff --git a/esp8266/qstrdefsport.h b/esp8266/qstrdefsport.h index df9c2fb4fd..1819395fa4 100644 --- a/esp8266/qstrdefsport.h +++ b/esp8266/qstrdefsport.h @@ -69,6 +69,8 @@ Q(flash_read) Q(flash_write) Q(flash_erase) Q(sdk_version) +Q(freemem) +Q(meminfo) Q(getaddrinfo) Q(send) Q(sendto)