Skip to content
Snippets Groups Projects
Commit 2d329c4a authored by Damien George's avatar Damien George
Browse files

extmod/moduselect: Use configurable EVENT_POLL_HOOK instead of WFI.

To make moduselect be usable by any port.
parent ebc8d730
No related branches found
No related tags found
No related merge requests found
...@@ -194,6 +194,7 @@ typedef long mp_off_t; ...@@ -194,6 +194,7 @@ typedef long mp_off_t;
#define MICROPY_BEGIN_ATOMIC_SECTION() disable_irq() #define MICROPY_BEGIN_ATOMIC_SECTION() disable_irq()
#define MICROPY_END_ATOMIC_SECTION(state) enable_irq(state) #define MICROPY_END_ATOMIC_SECTION(state) enable_irq(state)
#define MICROPY_EVENT_POLL_HOOK __WFI();
// assembly functions to handle critical sections, interrupt // assembly functions to handle critical sections, interrupt
// disabling/enabling and sleep mode enter/exit // disabling/enabling and sleep mode enter/exit
......
...@@ -172,7 +172,7 @@ STATIC mp_obj_t select_select(uint n_args, const mp_obj_t *args) { ...@@ -172,7 +172,7 @@ STATIC mp_obj_t select_select(uint n_args, const mp_obj_t *args) {
mp_map_deinit(&poll_map); mp_map_deinit(&poll_map);
return mp_obj_new_tuple(3, list_array); return mp_obj_new_tuple(3, list_array);
} }
__WFI(); MICROPY_EVENT_POLL_HOOK
} }
} }
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_select_select_obj, 3, 4, select_select); MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_select_select_obj, 3, 4, select_select);
...@@ -264,7 +264,7 @@ STATIC mp_obj_t poll_poll(uint n_args, const mp_obj_t *args) { ...@@ -264,7 +264,7 @@ STATIC mp_obj_t poll_poll(uint n_args, const mp_obj_t *args) {
} }
return ret_list; return ret_list;
} }
__WFI(); MICROPY_EVENT_POLL_HOOK
} }
} }
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(poll_poll_obj, 1, 3, poll_poll); MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(poll_poll_obj, 1, 3, poll_poll);
......
...@@ -262,6 +262,7 @@ static inline mp_uint_t disable_irq(void) { ...@@ -262,6 +262,7 @@ static inline mp_uint_t disable_irq(void) {
#define MICROPY_BEGIN_ATOMIC_SECTION() disable_irq() #define MICROPY_BEGIN_ATOMIC_SECTION() disable_irq()
#define MICROPY_END_ATOMIC_SECTION(state) enable_irq(state) #define MICROPY_END_ATOMIC_SECTION(state) enable_irq(state)
#define MICROPY_EVENT_POLL_HOOK __WFI();
// There is no classical C heap in bare-metal ports, only Python // There is no classical C heap in bare-metal ports, only Python
// garbage-collected heap. For completeness, emulate C heap via // garbage-collected heap. For completeness, emulate C heap via
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment