4 releases (2 breaking)
0.3.0 | Oct 12, 2022 |
---|---|
0.2.1 | Aug 14, 2019 |
0.2.0 | Jun 4, 2019 |
0.1.0 | May 10, 2019 |
#1939 in Embedded development
27KB
203 lines
CLosure INTerrupt handlers
This crate allows you to use closures for interrupt handlers in a heapless, no-std environment.
Cargo features
The HandlerTable
type uses a backing array for its closures. To
configure the number of available slots, specify one of the following
cargo features: isr-8
, isr-16
, isr-32
, isr-64
, isr-128
, or
isr-256
. By default, 32 slots are available.
Example Code
See the examples
directory for some simple examples.
For a slightly more complex example this repository uses clint to blink some LEDs and measure temperature across a number of interrupts and exceptions.
lib.rs
:
CLosure INTerrupt handlers
Use closures as interrupt service routines to leverage Rust's borrow checker for safe, exclusive usage of device peripherals and other data without locking.
Layout
See array
's module documentation for basic,
safe usage.
The handler
module contains the underyling, unsafe
implementation.
Critical section support is supplied by the cs
module.
Dependencies
~175KB