4 个版本 (2 个破坏性更新)

0.3.0 2022年10月12日
0.2.1 2019年8月14日
0.2.0 2019年6月4日
0.1.0 2019年5月10日

#1939嵌入式开发

LGPL-3.0-or-later

27KB
203 代码行

CLosure INTerrupt handlers

Documentation Testing

此crate允许您在无堆栈、无 std 环境中使用闭包作为中断处理程序。

Cargo 功能

类型 HandlerTable 使用一个支持数组来存储闭包。要配置可用的槽位数,指定以下 cargo 功能之一:isr-8isr-16isr-32isr-64isr-128isr-256。默认情况下,有32个槽位可用。

示例代码

请参阅 examples 目录中的简单示例。

对于更复杂的示例,此仓库 使用 clint 在多个中断和异常中闪烁一些LED并测量温度。


lib.rs:

CLosure INTerrupt handlers

使用闭包作为中断服务例程,利用 Rust 的借用检查器,在不锁定的情况下安全、独占地使用设备外设和其他数据。

布局

请参阅 array 模块的文档 以了解基本、安全的使用方法。

handler 模块包含底层的、不安全的实现。

临界区支持由 cs 模块提供。

依赖项

~175KB