diff --git a/py/mpconfig.h b/py/mpconfig.h index 6995600ab..d14b1aa04 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1850,14 +1850,6 @@ typedef double mp_float_t; #endif #endif -// On embedded platforms, these will typically enable/disable irqs. -#ifndef MICROPY_BEGIN_ATOMIC_SECTION -#define MICROPY_BEGIN_ATOMIC_SECTION() (0) -#endif -#ifndef MICROPY_END_ATOMIC_SECTION -#define MICROPY_END_ATOMIC_SECTION(state) (void)(state) -#endif - // Allow to override static modifier for global objects, e.g. to use with // object code analysis tools which don't support static symbols. #ifndef STATIC diff --git a/py/mphal.h b/py/mphal.h index 0d4b1224e..19fceef71 100644 --- a/py/mphal.h +++ b/py/mphal.h @@ -35,6 +35,14 @@ #include #endif +// On embedded platforms, these will typically enable/disable irqs. +#ifndef MICROPY_BEGIN_ATOMIC_SECTION +#define MICROPY_BEGIN_ATOMIC_SECTION() (0) +#endif +#ifndef MICROPY_END_ATOMIC_SECTION +#define MICROPY_END_ATOMIC_SECTION(state) (void)(state) +#endif + #ifndef mp_hal_stdio_poll uintptr_t mp_hal_stdio_poll(uintptr_t poll_flags); #endif diff --git a/py/objexcept.c b/py/objexcept.c index a54b81370..fe74458ca 100644 --- a/py/objexcept.c +++ b/py/objexcept.c @@ -81,6 +81,8 @@ void mp_init_emergency_exception_buf(void) { #else #define mp_emergency_exception_buf_size MP_STATE_VM(mp_emergency_exception_buf_size) +#include "py/mphal.h" // for MICROPY_BEGIN_ATOMIC_SECTION/MICROPY_END_ATOMIC_SECTION + void mp_init_emergency_exception_buf(void) { mp_emergency_exception_buf_size = 0; MP_STATE_VM(mp_emergency_exception_buf) = NULL; diff --git a/py/scheduler.c b/py/scheduler.c index 165b26dc8..b9a43bfbd 100644 --- a/py/scheduler.c +++ b/py/scheduler.c @@ -26,6 +26,7 @@ #include +#include "py/mphal.h" #include "py/runtime.h" // Schedules an exception on the main thread (for exceptions "thrown" by async