0.1.0 |
|
---|
#12 in #debug-probes
用于 2 crates
175KB
4K SLoC
probe-rs
一个用于在独立主机上调试ARM核的调试工具集和库。
动机
本库的目的是提供一个工具集,以与各种嵌入式MCU和调试探头进行交互。首先,将支持使用CoreSight协议的ARM核。如果需求量大且有更多贡献者,计划增加对其他架构的支持。
类似的项目,如OpenOCD、PyOCD、Segger Toolset、ST Tooling等,都存在。它们都实现了GDB协议,并在其之上实现了自己的协议,以使GDB能够与调试探头通信。这并不标准化,有时也不太稳定。对于每个工具,命令都不同,等等。
本项目去除了GDB层,并提供了对调试探头的直接接口,然后使其他软件(例如VisualStudio)能够使用其调试功能。
更重要的是,我们可以充分利用CoreSight。我们可以实时跟踪和修改内存以及寄存器。
最终目标是提供一个完整的库工具集,以使其他工具能够使用CoreSight的功能。
功能
该库可以连接到DAPLink并正确地读取和写入内存。它可以读取ROM表并提取CoreSight组件信息。写入整个十六进制文件已经完成了一半。该库还可以连接到ST-Link,附加到STM32F429(它应该能够连接到任何目标;这个只是用于测试)并读取DAP寄存器。由于某些STLink问题,读取ROM表存在错误,但可能在长期内得到修复。
开发重点是实现DAPLink的完整实现(CoreSight、闪存、调试),并从这里开始。
命令行界面
为了演示功能,编写了一个小的命令行工具。通过以下命令启动它:
cargo run -p cli -- help
帮助对话框应会告诉您如何使用CLI。
要使用tracer fire
cargo run -p cli -- trace <n> <address> | python3 cli/update_plot.py
当前的管道接口是二进制的。
如果您一切操作正确并且跟踪一个具有变化值的内存位置,它看起来是这样的
路线图
- v0.1.0
- Cortex m0, m3, m4的基本调试。
- 单步执行
- 暂停
- 中断
- 运行
- 基本的VSCode插件
- 单步执行
- 暂停
- 中断
- 运行
- 变量检查
- 结构体
- 枚举
- 基本类型
- 堆栈帧
- 基本的CLI
- 单步执行
- 暂停
- 中断
- 运行
- Cortex m0, m3, m4的基本调试。
- 闪存下载器。
- 半主机。
- 跟踪。
- SWD文件支持。
常见问题解答
我需要帮助!
不要犹豫,通过提交问题,在irc上提问,或通过电子邮件联系@Yatekii。
我能帮忙吗?
请查看问题或如果您觉得需要,请打开一个问题。
任何贡献都非常受欢迎!
还可以查看CONTRIBUTING.md。
许可证
根据您的选择,受以下任何一个许可证的约束:
- Apache许可证2.0版本(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证的定义,应按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~37MB
~1M SLoC