probe-rs
: 嵌入式开发的友好工具链
1. 项目介绍
probe-rs
是一个用 Rust 编写的嵌入式调试工具集和库,它专注于在单独的主机上对 ARM 和 RISC-V 目标进行调试。通过 probe-rs
,您可以轻松地运行程序,利用实时传输(RTT)和 defmt
编码将标准输出发送到控制台,以及使用 cargo-flash
进行固件更新,cargo-embed
获取全功能的 RTT 终端并发送命令到目标设备。这个项目旨在简化嵌入式编程,使其接近于本地应用程序的体验。
2. 项目快速启动
安装 probe-rs
在终端中执行以下命令以安装最新版本的 probe-rs
工具:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.sh | sh
运行示例程序
首先,确保您有一个可用的 Rust 环境。然后,克隆一个简单的示例项目,例如 microbit
:
git clone https://github.com/probe-rs/example-microbit.git
cd example-microbit
接下来,编译并运行程序:
cargo run --release
这将会编译项目并将目标文件传送到开发板上。
3. 应用案例和最佳实践
probe-rs
可用于各种场景,包括但不限于:
- 快速原型设计:通过即时查看输出和调试,可以迅速测试新想法。
- 代码性能分析:利用 RTT 功能,可以在运行时检查变量状态,从而优化代码。
- 固件升级流程:使用
cargo-flash
可以方便地部署更新到目标设备。
最佳实践建议:
- 在大型项目中,配合使用 Rust 的包管理器
cargo
来组织和依赖管理。 - 利用
defmt
日志框架,以便在目标硬件上获得简洁的日志输出。 - 对不同类型的开发板配置多个探针,以适应不同的硬件环境。
4. 典型生态项目
probe-rs
生态系统中包含一些重要的相关项目:
- vscode-probe-rs: VSCode 插件,提供了对
probe-rs
的支持,便于调试。 - embedded-test: 提供了一个专为嵌入式设备设计的测试框架。
- rusty-probe-firmware: Rust 实现的调试探针固件,用于自定义调试需求。
这些项目协同工作,共同构建了强大而灵活的嵌入式开发环境。
如需更详细的信息,可访问 probe-rs
的官方仓库及文档:https://github.com/probe-rs/probe-rs。