Skip to content

Commit a817a60

Browse files
authored
Merge pull request #5564 from dhalbert/asyncio
enable running asyncio
2 parents a69496b + f058c5e commit a817a60

File tree

7 files changed

+41
-10
lines changed

7 files changed

+41
-10
lines changed

extmod/moduselect.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ STATIC mp_obj_t select_select(size_t n_args, const mp_obj_t *args) {
150150
mp_map_deinit(&poll_map);
151151
return mp_obj_new_tuple(3, list_array);
152152
}
153-
MICROPY_EVENT_POLL_HOOK
153+
RUN_BACKGROUND_TASKS;
154154
}
155155
}
156156
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_select_select_obj, 3, 4, select_select);
@@ -229,7 +229,7 @@ STATIC mp_uint_t poll_poll_internal(uint n_args, const mp_obj_t *args) {
229229
if (n_ready > 0 || (timeout != (mp_uint_t)-1 && mp_hal_ticks_ms() - start_tick >= timeout)) {
230230
break;
231231
}
232-
MICROPY_EVENT_POLL_HOOK
232+
RUN_BACKGROUND_TASKS;
233233
}
234234

235235
return n_ready;
@@ -318,10 +318,13 @@ STATIC MP_DEFINE_CONST_DICT(poll_locals_dict, poll_locals_dict_table);
318318

319319
STATIC const mp_obj_type_t mp_type_poll = {
320320
{ &mp_type_type },
321+
.flags = MP_TYPE_FLAG_EXTENDED,
321322
.name = MP_QSTR_poll,
322-
.getiter = mp_identity_getiter,
323-
.iternext = poll_iternext,
324323
.locals_dict = (void *)&poll_locals_dict,
324+
MP_TYPE_EXTENDED_FIELDS(
325+
.getiter = mp_identity_getiter,
326+
.iternext = poll_iternext,
327+
),
325328
};
326329

327330
// poll()
@@ -354,4 +357,6 @@ const mp_obj_module_t mp_module_uselect = {
354357
.globals = (mp_obj_dict_t *)&mp_module_select_globals,
355358
};
356359

360+
MP_REGISTER_MODULE(MP_QSTR_select, mp_module_uselect, MICROPY_PY_USELECT);
361+
357362
#endif // MICROPY_PY_USELECT

ports/atmel-samd/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ endif
9494

9595
ifeq ($(CHIP_FAMILY), samd51)
9696
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
97-
OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
97+
OPTIMIZATION_FLAGS ?= -Os
9898
# TinyUSB defines
9999
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
100100
endif
101101

102102
ifeq ($(CHIP_FAMILY), same51)
103103
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
104-
OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
104+
OPTIMIZATION_FLAGS ?= -Os
105105
# TinyUSB defines
106106
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
107107
endif

ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ LONGINT_IMPL = MPZ
1212
# Not needed.
1313
CIRCUITPY_AESIO = 0
1414
CIRCUITPY_AUDIOBUSIO = 0
15+
CIRCUITPY_AUDIOCORE = 0
16+
CIRCUITPY_AUDIOIO = 0
17+
CIRCUITPY_AUDIOMIXER = 0
1518
CIRCUITPY_AUDIOMP3 = 0
1619
CIRCUITPY_BLEIO_HCI = 0
1720
CIRCUITPY_DISPLAYIO = 0

ports/nrf/boards/simmel/mpconfigboard.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ INTERNAL_FLASH_FILESYSTEM = 1
1212

1313
CIRCUITPY_ALARM = 0
1414
CIRCUITPY_AESIO = 1
15+
CIRCUITPY_AUDIOMIXER = 0
1516
CIRCUITPY_AUDIOMP3 = 0
1617
CIRCUITPY_BITMAPTOOLS = 0
1718
CIRCUITPY_BUSDEVICE = 0
@@ -25,6 +26,7 @@ CIRCUITPY_KEYPAD = 0
2526
CIRCUITPY_MSGPACK = 0
2627
CIRCUITPY_NEOPIXEL_WRITE = 0
2728
CIRCUITPY_NVM = 0
29+
CIRCUITPY_ONEWIREIO = 0
2830
CIRCUITPY_PIXELBUF = 0
2931
CIRCUITPY_PULSEIO = 0
3032
CIRCUITPY_PWMIO = 1

ports/stm/boards/pyb_nano_v2/mpconfigboard.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ LD_FILE = boards/STM32F411_fs.ld
1616
# Too big for the flash
1717
CIRCUITPY_AUDIOCORE = 0
1818
CIRCUITPY_AUDIOPWMIO = 0
19-
CIRCUITPY_KEYPAD = 0
20-
CIRCUITPY_GIFIO = 0
21-
CIRCUITPY_MIDI = 0
22-
CIRCUITPY_MSGPACK = 0
2319
CIRCUITPY_BITMAPTOOLS = 0
2420
CIRCUITPY_BUSDEVICE = 0
21+
CIRCUITPY_GIFIO = 0
22+
CIRCUITPY_KEYPAD = 0
23+
CIRCUITPY_MSGPACK = 0
24+
CIRCUITPY_ONEWIREIO = 0

py/circuitpy_mpconfig.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@
4545
// free bytes.
4646
// #define MICROPY_ALLOC_PARSE_RULE_INIT (64)
4747

48+
// These critical-section macros are used only a few places in MicroPython, but
49+
// we need to provide actual implementations.
50+
extern void common_hal_mcu_disable_interrupts(void);
51+
extern void common_hal_mcu_enable_interrupts(void);
52+
#define MICROPY_BEGIN_ATOMIC_SECTION() (common_hal_mcu_disable_interrupts(), 0)
53+
#define MICROPY_END_ATOMIC_SECTION(state) ((void)state, common_hal_mcu_enable_interrupts())
54+
4855
// Sorted alphabetically for easy finding.
4956
//
5057
// default is 128; consider raising to reduce fragmentation.

py/circuitpy_mpconfig.mk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,20 @@ CFLAGS += -DCIRCUITPY_FULL_BUILD=$(CIRCUITPY_FULL_BUILD)
3636
MICROPY_PY_ASYNC_AWAIT ?= $(CIRCUITPY_FULL_BUILD)
3737
CFLAGS += -DMICROPY_PY_ASYNC_AWAIT=$(MICROPY_PY_ASYNC_AWAIT)
3838

39+
# uasyncio
40+
# By default, include uasyncio if async/await are available.
41+
MICROPY_PY_UASYNCIO ?= $(MICROPY_PY_ASYNC_AWAIT)
42+
CFLAGS += -DMICROPY_PY_UASYNCIO=$(MICROPY_PY_UASYNCIO)
43+
44+
# uasyncio normally needs select
45+
MICROPY_PY_USELECT ?= $(MICROPY_PY_UASYNCIO)
46+
CFLAGS += -DMICROPY_PY_USELECT=$(MICROPY_PY_USELECT)
47+
48+
# enable select.select if select is enabled.
49+
MICROPY_PY_USELECT_SELECT ?= $(MICROPY_PY_USELECT)
50+
CFLAGS += -DMICROPY_PY_USELECT_SELECT=$(MICROPY_PY_USELECT_SELECT)
51+
52+
3953
CIRCUITPY_AESIO ?= $(CIRCUITPY_FULL_BUILD)
4054
CFLAGS += -DCIRCUITPY_AESIO=$(CIRCUITPY_AESIO)
4155

0 commit comments

Comments
 (0)