#cortex-m #arm #teensy-4 #panic-message

无 std teensy4-panic

Teensy 4 的 panic 处理器。teensy4-rs 项目的一部分

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 嵌入式开发

Download history 169/week @ 2024-04-08 56/week @ 2024-04-15 54/week @ 2024-04-22 48/week @ 2024-04-29 69/week @ 2024-05-06 34/week @ 2024-05-13 43/week @ 2024-05-20 133/week @ 2024-05-27 72/week @ 2024-06-03 40/week @ 2024-06-10 121/week @ 2024-06-17 40/week @ 2024-06-24 3/week @ 2024-07-01 14/week @ 2024-07-08 63/week @ 2024-07-15 50/week @ 2024-07-22

132 每月下载量
用于 3 crate

MIT/Apache

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