5 个版本
0.2.3 | 2023年9月15日 |
---|---|
0.2.2 | 2023年1月6日 |
0.2.1 | 2021年12月19日 |
0.2.0 | 2021年4月24日 |
0.1.0 | 2020年12月26日 |
#1196 in 嵌入式开发
132 每月下载量
用于 3 crate
11KB
100 行
teensy4-panic
Teensy 4 的 panic 处理器。
当将 teensy4-panic
链接到您的程序中时,任何 panic!()
都会导致您的 Teensy 的 LED 以摩尔斯电码闪烁 S.O.S. 支持 Teensy 4.0 和 4.1 板。
用法
依赖 teensy4-panic
[dependencies]
teensy4-panic = "0.2"
然后,在您的最终程序中包含该 crate
use teensy4_panic as _;
最后,使用 panic!()
停止程序并闪烁 LED。
功能
下表总结了此 crate 的功能。每个子部分详细说明了该功能。
功能 | 描述 | 默认功能? |
---|---|---|
panic-handler |
在此 crate 中定义 Teensy 4 的 panic 处理器 | ✓ |
log |
使用 log::error! 记录 panic 信息 |
由于记录只能在 panic-handler
启用时发生,因此没有意义同时禁用 panic-handler
并启用 log
。
自定义 panic 处理器
默认情况下,teensy4-panic
启用 panic-handler
功能。如果您想在您的 panic 处理器中使用 S.O.S. 例程,请禁用默认功能,并调用 sos()
[dependencies]
teensy4-panic = "0.2"
default-features = false
use teensy4_panic::sos;
#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
// Your panic handler here...
sos()
}
记录 panic 信息
如果启用了 log
功能,该 crate 会与 log crate 链接。在闪烁之前,panic 处理器会使用 log::error!
将 panic 信息和源位置记录在错误优先级,日志目标是 teensy4_panic
。
以下示例显示了 panic!
及其对应的日志消息示例。
const DELAY_MS: u32 = 5_000;
panic!("This is a panic message written after {}ms", DELAY_MS);
[ERROR teensy4_panic]: panicked at 'This is a panic message written after 5000ms', examples/panic_log.rs:22:5
恐慌处理程序仅发出日志消息一次。您负责确保在 panic!
活跃期间日志消息能够到达目的地。
许可证:MIT 或 Apache-2.0
依赖关系
约22KB