From a14f90af2f40c67c945af380b131dd09d68edf0b Mon Sep 17 00:00:00 2001 From: Matthias Blankertz Date: Tue, 30 Apr 2024 13:57:33 +0200 Subject: [PATCH] rp2: Allow disabling thread support --- ports/rp2/mpconfigport.h | 2 ++ ports/rp2/mphalport.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/ports/rp2/mpconfigport.h b/ports/rp2/mpconfigport.h index 1cc9b9616..d7f322570 100644 --- a/ports/rp2/mpconfigport.h +++ b/ports/rp2/mpconfigport.h @@ -89,9 +89,11 @@ // Fine control over Python builtins, classes, modules, etc #define MICROPY_PY_BUILTINS_HELP_TEXT rp2_help_text #define MICROPY_PY_SYS_PLATFORM "rp2" +#ifndef MICROPY_PY_THREAD #define MICROPY_PY_THREAD (1) #define MICROPY_PY_THREAD_GIL (0) #define MICROPY_THREAD_YIELD() mp_handle_pending(true) +#endif // Extended modules #define MICROPY_EPOCH_IS_1970 (1) diff --git a/ports/rp2/mphalport.h b/ports/rp2/mphalport.h index 9feace2f4..f0be93d8e 100644 --- a/ports/rp2/mphalport.h +++ b/ports/rp2/mphalport.h @@ -36,9 +36,14 @@ #define SYSTICK_MAX (0xffffff) #define MICROPY_HW_USB_CDC_TX_TIMEOUT (500) +#if MICROPY_PY_THREAD // Entering a critical section. #define MICROPY_BEGIN_ATOMIC_SECTION() mp_thread_begin_atomic_section() #define MICROPY_END_ATOMIC_SECTION(state) mp_thread_end_atomic_section(state) +#else +#define MICROPY_BEGIN_ATOMIC_SECTION() save_and_disable_interrupts() +#define MICROPY_END_ATOMIC_SECTION(state) restore_interrupts(state) +#endif #define MICROPY_PY_PENDSV_ENTER pendsv_suspend() #define MICROPY_PY_PENDSV_EXIT pendsv_resume()