8个重大版本
0.10.0 | 2024年6月7日 |
---|---|
0.8.0 | 2024年2月9日 |
0.7.0 | 2023年10月11日 |
0.6.0 | 2022年9月13日 |
0.4.0 | 2022年7月15日 |
#392 在 硬件支持
每月39次下载
150KB
78 代码行
defmt-serial
一个用于通过串行端口记录的 defmt 目标。查看示例以了解如何使用库 example-artemis 或 example-pi-pico。您还可以在托管环境中尝试它: example-std。要解析日志,请查看 解析日志。
static SERIAL: StaticCell<hal::uart::Uart0> = StaticCell::new();
#[entry]
fn main() -> ! {
let mut dp = hal::pac::Peripherals::take().unwrap();
let pins = hal::gpio::Pins::new(dp.GPIO);
// set up serial
let serial = hal::uart::Uart0::new(dp.UART0, pins.tx0, pins.rx0);
defmt_serial::defmt_serial(SERIAL.init(serial));
defmt::info!("Hello from defmt!");
loop {
asm::wfi();
}
}
记得在测试时设置 DEFMT_LOG
变量,例如
$ cd example-std/
$ DEFMT_LOG=debug cargo run
解析日志
解析日志最简单的方法是使用 socat
和 defmt-print
。例如
$ socat ${PORT},rawer,b${BAUDRATE} STDOUT | defmt-print -e ${ELF}
只需将 ${PORT}
、${BAUDRATE}
和 ${ELF}
替换为正确的值。
在Ubuntu 22.04上安装工具,请运行以下命令
$ apt install socat
$ cargo install defmt-print
请注意,在Mac OS上,似乎 socat
在此目的上已损坏。请改用 stty
和 cat
$ (stty speed 115200 >/dev/null && cat) </dev/cu.usbserial-10 | defmt-print -e $(ELF)
依赖项
~0.6–1MB
~23K SLoC