pico-sdk/src/rp2_common/hardware_irq
Graham Sanderson a540ca905a
Add new async_context abstraction and refactor cyw43_arch to use it (#1177)
* Extract all poll/threadsafe_background/freertos from cyw43_arch into new abstraction async_context:
* provides support for asynchronous events (timers/IRQ notifications) to be handled in a safe context.
* now guarantees all callbacks happen on a single core.
* is reusable by multiple different libraries (stdio_usb can now be ported to this but hasn't been yet).
* supports multiple independent instances (independent instances will not block each other).
* cyw43_arch libraries cleaned up to use the new abstraction. Note each distinct cyw43_arch type is now a very thin layer that creates the right type of context and adds cyw43_driver and lwip support as appropriate.

Additionally,

* Add new pico_time and hardware_alarm APIs
* Add from_us_since_boot()
* Add alarm_pool_create_with_unused_hardware_alarm()
* Add alarm_pool_add_alarm_at_force_in_context()
* Add hardware_alarm_claim_unused()
* Add hardware_alarm_force_irq()
* Added panic_compact() and some minor comment cleanup; moved FIRST_USER_IRQ define to platform_defs.h
2023-01-24 12:01:24 -06:00
..
include/hardware user_irqs should be claimed globally not per core, since vector tabes are shared (#1183) 2023-01-24 08:58:01 -06:00
CMakeLists.txt Initial Release 2021-01-20 10:44:27 -06:00
irq_handler_chain.S Make sure stack is 8 byte aligned in shared IRQ handlers (#971) 2022-08-17 10:25:23 -05:00
irq.c Add new async_context abstraction and refactor cyw43_arch to use it (#1177) 2023-01-24 12:01:24 -06:00