circuitpython/ports
Damien George 647fa63f9c stm32/softtimer: Support static soft timer instances.
This adds support for making static (ie not on the Python GC heap) soft
timers.  This can be useful for a board to define a custom background
handler, or eventually for BLE/network processing to use instead of systick
slots; it will be more efficient using soft timer for this.

The main issue with using the existing code for static soft timers is that
it would combine heap allocated and statically allocated soft_timer_entry_t
instances in the same pairing-heap data structure.  This would prevent the
GC from tracing some of the heap allocated entries (because the GC won't
follow pointers outside the heap).

This commit makes it so that soft timer entries are explicitly marked,
instead of relying on implicit marking by having the root of the pairing
heap in the root pointer section.  Also, on soft reset only the heap-
allocated soft timers are deleted from the pairing heap, leaving the
statically allocated ones.

Signed-off-by: Damien George <damien@micropython.org>
2021-04-29 16:54:35 +10:00
..
bare-arm bare-arm: Switch to use MICROPY_ERROR_REPORTING_NONE to reduce size. 2021-04-27 23:52:40 +10:00
cc3200 tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
esp32 esp32: Restore FROZEN_MANIFEST support with new CMake build system. 2021-04-29 12:34:00 +10:00
esp8266 esp8266/modules: Fix fs_corrupted() to use start_sec not START_SEC. 2021-02-09 10:46:07 +11:00
javascript tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
mimxrt mimxrt: Enable CPYTHON_COMPAT, PY_ASYNC_AWAIT, PY_ATTRTUPLE options. 2021-04-14 12:55:53 +10:00
minimal ports: Disable MICROPY_PY_ASSIGN_EXPR in bare-arm and minimal ports. 2020-06-16 22:06:21 +10:00
nrf nrf/drivers/usb: Add USBD_IRQHandler which calls tud_int_handler. 2021-02-13 13:52:53 +11:00
pic16bit pic16bit/Makefile: Make the XC compiler version user-configurable. 2021-04-28 00:18:04 +10:00
powerpc ports: Remove def of MP_PLAT_PRINT_STRN if it's the same as the default. 2021-02-04 22:39:17 +11:00
qemu-arm tests: Rename run-tests to run-tests.py for consistency. 2021-03-12 19:56:09 +11:00
rp2 rp2/rp2_pio: Add fifo_join support for PIO. 2021-04-17 00:45:38 +10:00
samd samd/mphalport: Fix USB CDC tx handling to work reliably. 2021-02-12 14:09:01 +11:00
stm32 stm32/softtimer: Support static soft timer instances. 2021-04-29 16:54:35 +10:00
teensy stm32,teensy: Correct typos in project README files. 2021-04-28 00:29:18 +10:00
unix unix/main: Make static variable that's potentially clobbered by longjmp. 2021-04-14 10:45:26 +10:00
windows windows/mpconfigport.h: Enable features also present in unix port. 2021-04-23 23:15:10 +10:00
zephyr py/py.cmake: Introduce MICROPY_INC_CORE as a list with core includes. 2021-04-09 13:08:35 +10:00