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

LGPL-3.0-or-later

27KB
203 lines

CLosure INTerrupt handlers

Documentation Testing

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