esp32: Consolidate check_esp_err functions and add IDF error string.

This commit consolidates a number of check_esp_err functions that check
whether an ESP-IDF return code is OK and raises an exception if not.  The
exception raised is an OSError with the error code as the first argument
(negative if it's ESP-IDF specific) and the ESP-IDF error string as the
second argument.

This commit also fixes esp32.Partition.set_boot to use check_esp_err, and
uses that function for a unit test.
This commit is contained in:
Thorsten von Eicken
2020-03-31 16:03:01 -07:00
committed by Damien George
parent a177831c46
commit 1ae7e0e561
8 changed files with 85 additions and 44 deletions

View File

@@ -56,17 +56,6 @@ typedef struct _esp32_rmt_obj_t {
rmt_item32_t *items;
} esp32_rmt_obj_t;
// Defined in machine_time.c; simply added the error message
// Fixme: Should use this updated error hadline more widely in the ESP32 port.
// At least update the method in machine_time.c.
STATIC esp_err_t check_esp_err(esp_err_t code) {
if (code) {
mp_raise_msg(&mp_type_OSError, (mp_rom_error_text_t)esp_err_to_name(code));
}
return code;
}
STATIC mp_obj_t esp32_rmt_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_id, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = -1} },