1 Commits

Author SHA1 Message Date
9fdf5586f5 rp2/modmachine: Use atomic section macros.
To avoid undefined references to
mp_thread_begin_atomic_section/mp_thread_end_atomic_section, replace
them with the MICROPY_BEGIN_ATOMIC_SECTION / MICROPY_END_ATOMIC_SECTION
macros. That way, the support for building with MICROPY_PY_THREAD
disabled introduced by commit efa54c27b9 ("rp2/mpconfigport: Allow
MICROPY_PY_THREAD to be disabled by a board.") is useable again.

Fixes commit 19844b4983 ("rp2/modmachine: Prevent lock-up when
lightsleep() called within thread.").

Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2024-05-31 19:00:13 +02:00

View File

@@ -127,10 +127,10 @@ static void mp_machine_lightsleep(size_t n_args, const mp_obj_t *args) {
const uint32_t xosc_hz = XOSC_MHZ * 1000000; const uint32_t xosc_hz = XOSC_MHZ * 1000000;
uint32_t my_interrupts = mp_thread_begin_atomic_section(); uint32_t my_interrupts = MICROPY_BEGIN_ATOMIC_SECTION();
#if MICROPY_PY_NETWORK_CYW43 #if MICROPY_PY_NETWORK_CYW43
if (cyw43_has_pending && cyw43_poll != NULL) { if (cyw43_has_pending && cyw43_poll != NULL) {
mp_thread_end_atomic_section(my_interrupts); MICROPY_END_ATOMIC_SECTION(my_interrupts);
return; return;
} }
#endif #endif
@@ -196,7 +196,7 @@ static void mp_machine_lightsleep(size_t n_args, const mp_obj_t *args) {
// Bring back all clocks. // Bring back all clocks.
clocks_init(); clocks_init();
mp_thread_end_atomic_section(my_interrupts); MICROPY_END_ATOMIC_SECTION(my_interrupts);
} }
NORETURN static void mp_machine_deepsleep(size_t n_args, const mp_obj_t *args) { NORETURN static void mp_machine_deepsleep(size_t n_args, const mp_obj_t *args) {