#logging-framework #logging #formatting #logger #formatter #knurling

sys no-std defmt

一个针对资源受限设备,如微控制器的,高度高效的日志框架

17 个版本

0.3.8 2024年5月17日
0.3.6 2024年2月7日
0.3.6-beta.12023年7月7日
0.3.3 2023年3月29日
0.1.3 2020年11月30日

#14 in 嵌入式开发

Download history 19238/week @ 2024-05-03 22772/week @ 2024-05-10 22375/week @ 2024-05-17 21426/week @ 2024-05-24 22404/week @ 2024-05-31 19382/week @ 2024-06-07 21331/week @ 2024-06-14 25528/week @ 2024-06-21 24738/week @ 2024-06-28 24100/week @ 2024-07-05 27280/week @ 2024-07-12 26085/week @ 2024-07-19 25301/week @ 2024-07-26 26856/week @ 2024-08-02 30514/week @ 2024-08-09 24171/week @ 2024-08-16

111,352 月下载量
444 个 crates (388 directly) 中使用

MIT/Apache

82KB
1.5K SLoC

defmt

defmt ("de format", 简称 "deferred formatting") 是一个针对资源受限设备,如微控制器,的高度高效的日志框架。

有关该框架的更多详细信息,请参阅https://defmt.ferrous-systems.com 中的书籍。

可以在https://defmt-next.ferrous-systems.com/ 查看defmt书籍的git版本。

设置

新建项目

使用我们的 app-template 是开始使用 defmt 的最快方式,用于设置新的 Cortex-M 嵌入式项目。

现有项目

要将 defmt 包含到您的现有项目中,请按照我们的 应用设置指南 进行操作。

MSRV

defmt 总是在最新的 稳定版 rust 上编译。这是由我们的 CI 构建和针对此版本进行测试强制执行的。

它可能在较旧的 rust 版本上仍然有效,但这没有保证。

defmt 生态系统

以下图示展示了 defmt 框架的用户界面和内部结构。

defmt crates structure

开发者信息

运行测试

测试使用 cargo xtask 运行 -- 尽管这只是一个别名(在 .cargo/config.toml 中定义),实际上是 cargo run --package xtask --

要查看选项列表,请参阅 xtask/src/main.rs,或运行

$ cargo xtask help

例如,要运行所有测试,请运行

$ cargo xtask test-all

您需要安装并配置 qemu-system-arm 到您的 $PATH 中,以便运行某些测试(例如 test-snapshot)。

支持

defmtKnurling 项目的组成部分,是 Ferrous Systems 旨在改进嵌入式系统开发工具的努力。

如果您认为我们的工作有用,请考虑通过 GitHub Sponsors 进行赞助。

许可证

根据以下之一许可

根据您的选择。

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,均应按上述方式许可,不附加任何其他条款或条件。

依赖项

~0.4–1MB
~21K SLoC