diff --git a/ports/esp32/machine_i2s.c b/ports/esp32/machine_i2s.c index 8832ad5e90..933e68684b 100644 --- a/ports/esp32/machine_i2s.c +++ b/ports/esp32/machine_i2s.c @@ -840,4 +840,6 @@ const mp_obj_type_t machine_i2s_type = { .locals_dict = (mp_obj_dict_t *)&machine_i2s_locals_dict, }; +MP_REGISTER_ROOT_POINTER(struct _machine_i2s_obj_t *machine_i2s_obj[I2S_NUM_MAX]); + #endif // MICROPY_PY_MACHINE_I2S diff --git a/ports/esp32/machine_pin.c b/ports/esp32/machine_pin.c index 865face96f..b575626338 100644 --- a/ports/esp32/machine_pin.c +++ b/ports/esp32/machine_pin.c @@ -729,3 +729,5 @@ STATIC const mp_obj_type_t machine_pin_irq_type = { .call = machine_pin_irq_call, .locals_dict = (mp_obj_dict_t *)&machine_pin_irq_locals_dict, }; + +MP_REGISTER_ROOT_POINTER(mp_obj_t machine_pin_irq_handler[40]); diff --git a/ports/esp32/machine_timer.c b/ports/esp32/machine_timer.c index 100b2aa1fb..8541bcbfdb 100644 --- a/ports/esp32/machine_timer.c +++ b/ports/esp32/machine_timer.c @@ -272,3 +272,5 @@ const mp_obj_type_t machine_timer_type = { .make_new = machine_timer_make_new, .locals_dict = (mp_obj_t)&machine_timer_locals_dict, }; + +MP_REGISTER_ROOT_POINTER(struct _machine_timer_obj_t *machine_timer_obj_head); diff --git a/ports/esp32/main.c b/ports/esp32/main.c index 14b7e14c62..c543c5b645 100644 --- a/ports/esp32/main.c +++ b/ports/esp32/main.c @@ -265,3 +265,5 @@ void *esp_native_code_commit(void *buf, size_t len, void *reloc) { memcpy(p, buf, len); return p; } + +MP_REGISTER_ROOT_POINTER(mp_obj_t native_code_pointers); diff --git a/ports/esp32/mpconfigport.h b/ports/esp32/mpconfigport.h index 7cfce49d37..8dc3537e59 100644 --- a/ports/esp32/mpconfigport.h +++ b/ports/esp32/mpconfigport.h @@ -136,14 +136,6 @@ #define MP_STATE_PORT MP_STATE_VM -struct _machine_timer_obj_t; - -#define MICROPY_PORT_ROOT_POINTERS \ - mp_obj_t machine_pin_irq_handler[40]; \ - struct _machine_timer_obj_t *machine_timer_obj_head; \ - struct _machine_i2s_obj_t *machine_i2s_obj[I2S_NUM_MAX]; \ - mp_obj_t native_code_pointers; \ - // type definitions for the specific machine #define MICROPY_MAKE_POINTER_CALLABLE(p) ((void *)((mp_uint_t)(p)))