summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/rp2/mpconfigport.h2
-rw-r--r--ports/rp2/mphalport.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/ports/rp2/mpconfigport.h b/ports/rp2/mpconfigport.h
index ce89763d5..8f073002e 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 c8e2301a9..d2d74d783 100644
--- a/ports/rp2/mphalport.h
+++ b/ports/rp2/mphalport.h
@@ -37,8 +37,13 @@
#define MICROPY_HW_USB_CDC_TX_TIMEOUT (500)
// Entering a critical section.
+#if MICROPY_PY_THREAD
#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()