circuitpython/ports
Amir Gonnen 995f9cfdfc esp32: Pin MicroPython tasks to a specific core.
On this port the GIL is enabled and everything works under the assumption
of the GIL, ie that a given task has exclusive access to the uPy state, and
any ISRs interrupt the current task and therefore the ISR inherits
exclusive access to the uPy state for the duration of its execution.

If the MicroPython tasks are not pinned to a specific core then an ISR may
be executed on a different core to the task, making it possible for the
main task and an ISR to execute in parallel, breaking the assumption of the
GIL.

The easiest and safest fix for this is to pin all MicroPython related code
to the same CPU core, as done by this patch.  Then any ISR that accesses
MicroPython state must be registered from a MicroPython task, to ensure it
is invoked on the same core.

See issue #4895.
2019-07-25 15:33:47 +10:00
..
bare-arm py/objdict: Make .fromkeys() method configurable. 2018-12-13 01:20:55 +11:00
cc3200 ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
esp32 esp32: Pin MicroPython tasks to a specific core. 2019-07-25 15:33:47 +10:00
esp8266 extmod/modwebrepl: Add config option to put filebuf[512] on stack/bss. 2019-07-03 12:55:57 +10:00
javascript javascript: Enable support for frozen bytecode via FROZEN_MPY_DIR. 2019-07-09 13:17:15 +10:00
minimal minimal: Use soft float for CROSS=1 Cortex-M4 target. 2019-07-01 22:48:05 +10:00
nrf nrf/led: Adjust how board LEDs are defined. 2019-06-25 16:02:31 +10:00
pic16bit ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
qemu-arm qemu-arm: Use gchelper code to get registers for GC scanning. 2019-02-12 14:48:29 +11:00
samd samd: Remove "makefile" file. 2019-07-02 17:09:59 +10:00
stm32 stm32/boards/USBDONGLE_WB55: Add definition files for new board. 2019-07-17 17:00:34 +10:00
teensy ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
unix unix/unix_mphal: Include time.h for CLOCK_MONOTONIC. 2019-07-09 13:05:59 +10:00
windows windows/mpconfigport.h: Don't define restrict/inline/alignof for C++. 2019-07-19 16:58:02 +10:00
zephyr zephyr: Switch back to enabling I2C in board-specific configs. 2019-05-24 15:33:02 +10:00