@@ -120,6 +120,20 @@ const mp_obj_type_t mp_type_espidf_MemoryError = {
120120 .parent = & mp_type_MemoryError ,
121121};
122122
123+ //| def get_total_psram() -> int:
124+ //| """Returns the number of bytes of psram detected, or 0 if psram is not present or not configured"""
125+ STATIC mp_obj_t espidf_get_total_psram (void ) {
126+ return MP_OBJ_NEW_SMALL_INT (common_hal_espidf_get_total_psram ());
127+ }
128+ MP_DEFINE_CONST_FUN_OBJ_0 (espidf_get_total_psram_obj , espidf_get_total_psram );
129+
130+ //| def get_reserved_psram() -> int:
131+ //| """Returns number of bytes of psram reserved for use by esp-idf, either a board-specific default value or the value defined in ``/.env``."""
132+ STATIC mp_obj_t espidf_get_reserved_psram (void ) {
133+ return MP_OBJ_NEW_SMALL_INT (common_hal_espidf_get_reserved_psram ());
134+ }
135+ MP_DEFINE_CONST_FUN_OBJ_0 (espidf_get_reserved_psram_obj , espidf_get_reserved_psram );
136+
123137STATIC const mp_rom_map_elem_t espidf_module_globals_table [] = {
124138 { MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_espidf ) },
125139
@@ -129,6 +143,8 @@ STATIC const mp_rom_map_elem_t espidf_module_globals_table[] = {
129143
130144 { MP_ROM_QSTR (MP_QSTR_erase_nvs ), MP_ROM_PTR (& espidf_erase_nvs_obj )},
131145
146+ { MP_ROM_QSTR (MP_QSTR_get_total_psram ), MP_ROM_PTR (& espidf_get_total_psram_obj )},
147+ { MP_ROM_QSTR (MP_QSTR_get_reserved_psram ), MP_ROM_PTR (& espidf_get_reserved_psram_obj )},
132148 { MP_ROM_QSTR (MP_QSTR_IDFError ), MP_ROM_PTR (& mp_type_espidf_IDFError ) },
133149 { MP_ROM_QSTR (MP_QSTR_MemoryError ), MP_ROM_PTR (& mp_type_espidf_MemoryError ) },
134150};
@@ -139,66 +155,3 @@ const mp_obj_module_t espidf_module = {
139155 .base = { & mp_type_module },
140156 .globals = (mp_obj_dict_t * )& espidf_module_globals ,
141157};
142-
143- void raise_esp_error (esp_err_t err ) {
144- const compressed_string_t * msg = NULL ;
145- const mp_obj_type_t * exception_type = & mp_type_espidf_IDFError ;
146- switch (err ) {
147- case ESP_FAIL :
148- msg = translate ("Generic Failure" );
149- break ;
150- case ESP_ERR_NO_MEM :
151- exception_type = & mp_type_espidf_MemoryError ;
152- msg = translate ("Out of memory" );
153- break ;
154- case ESP_ERR_INVALID_ARG :
155- msg = translate ("Invalid argument" );
156- break ;
157- case ESP_ERR_INVALID_STATE :
158- msg = translate ("Invalid state" );
159- break ;
160- case ESP_ERR_INVALID_SIZE :
161- msg = translate ("Invalid size" );
162- break ;
163- case ESP_ERR_NOT_FOUND :
164- msg = translate ("Requested resource not found" );
165- break ;
166- case ESP_ERR_NOT_SUPPORTED :
167- msg = translate ("Operation or feature not supported" );
168- break ;
169- case ESP_ERR_TIMEOUT :
170- msg = translate ("Operation timed out" );
171- break ;
172- case ESP_ERR_INVALID_RESPONSE :
173- msg = translate ("Received response was invalid" );
174- break ;
175- case ESP_ERR_INVALID_CRC :
176- msg = translate ("CRC or checksum was invalid" );
177- break ;
178- case ESP_ERR_INVALID_VERSION :
179- msg = translate ("Version was invalid" );
180- break ;
181- case ESP_ERR_INVALID_MAC :
182- msg = translate ("MAC address was invalid" );
183- break ;
184- }
185- if (msg ) {
186- mp_raise_msg (exception_type , msg );
187- }
188-
189- const char * group = "ESP-IDF" ;
190-
191- // tests must be in descending order
192- MP_STATIC_ASSERT (ESP_ERR_FLASH_BASE > ESP_ERR_MESH_BASE );
193- MP_STATIC_ASSERT (ESP_ERR_MESH_BASE > ESP_ERR_WIFI_BASE );
194- if (err >= ESP_ERR_FLASH_BASE ) {
195- group = "Flash" ;
196- } else if (err >= ESP_ERR_MESH_BASE ) {
197- group = "Mesh" ;
198- } else if (err >= ESP_ERR_WIFI_BASE ) {
199- group = "WiFi" ;
200- }
201- mp_raise_msg_varg (exception_type , translate ("%s error 0x%x" ), group , err );
202- }
203-
204- MP_REGISTER_MODULE (MP_QSTR_espidf , espidf_module , CIRCUITPY_ESPIDF );
0 commit comments