用于 Python 的 Cortex-M 调试器
项目描述
强迫症
[pyocd.io] [文档] [Slack] [邮件列表] [CI 结果]
消息
查看wiki 新闻页面了解所有最新新闻。 |
pyOCD 是一个基于 Python 的开源工具和包,用于通过各种调试探针对 Arm Cortex-M 微控制器进行编程和调试。它是完全跨平台的,支持 Linux、macOS、Windows 和 FreeBSD。
提供了涵盖大多数用例的命令行工具,或者您可以使用 Python API 来促进自定义目标控制。Python API 的一个常见用途是运行和控制 CI 测试。
内置对 70 多种流行 MCU 的支持。此外,通过使用 CMSIS 设备系列包,几乎支持市场上的所有 Cortex-M 设备。
命令行工具使您可以使用以下pyocd
子命令完全控制您的设备:
gdbserver
: GDB 远程服务器允许您通过控制台或 几个 GUI 调试器选项使用 gdb 进行调试。load
: 将各种格式的文件烧录到闪存或 RAM 中。erase
:擦除部分或全部 MCU 的闪存。pack
:管理 提供额外目标设备支持的CMSIS 设备系列包。commander
:MCU的交互式REPL控制和检查。server
:与 TCP/IP 服务器共享调试探针。reset
:设备的硬件或软件复位。rtt
:使用任何调试探针流式传输 Segger RTT IO 。list
:显示连接的设备。
API 和工具提供以下功能:
- 停止、步进、恢复控制
- 读/写内存
- 读/写核心寄存器
- 设置/删除硬件和软件断点
- 设置/删除观察点
- 写入闪存
- 将二进制、十六进制或 ELF 文件加载到闪存中
- 复位控制
- 访问 CoreSight DP 和 AP
- SWO 和 SWV
- 和更多!
通过配置文件、 用户脚本和 Python API 支持配置和自定义。
要求
- Python 3.6.0 或更高版本。†
- macOS、Linux、Windows 7 或更新版本,或 FreeBSD
- 最新版本的libusb。有关详细信息,请参阅libusb 安装。
- 带有 Arm Cortex-M CPU 的微控制器
- 支持的调试探针
† 0.29版是支持 Python 2 的最后一个版本。
地位
PyOCD 是 beta 质量。
Python API 在 0.x 版本中被认为是稳定的,但将在 1.0 版本中进行更改。
文档
pyOCD 文档可在pyocd.io 网站上找到。
除了用户指南之外,您还可以使用 Doxygen 和提供的配置文件生成参考文档。
安装
文档中提供了完整的安装指南。
有关在 Raspberry Pi 等非 x86 系统上安装和使用的说明,请参阅 相关文档。
可以通过pip安装最新的稳定版 pyOCD ,如下所示:
$ python3 -mpip install -U pyocd
注意:根据您的系统,您可能需要python
使用python3
.
要从develop
分支的 HEAD 安装最新的预发布版本,您可以执行以下操作:
$ python3 -mpip install --pre -U git+https://github.com/pyocd/pyOCD.git@develop
您还可以通过克隆 git 存储库并运行以下命令直接从源安装:
$ python3 pip install .
请注意,根据您的操作系统,您可能会遇到运行这些命令的权限问题。你有几个选择:
- 在 Linux 下,运行 with
sudo -H
以全局安装 pyOCD 和依赖项。在 macOS 上,永远不需要使用 sudo 进行安装,尽管有时权限可能会被修改,这样不使用 sudo 的安装就会失败。 - 指定在
--user
本地安装到您的用户帐户的选项。 - 在特定项目工作集的本地虚拟环境中运行命令。
Linux 上的 udev 规则
在 Linux,尤其是 Ubuntu 16.04+ 上,您必须配置 udev 规则以允许 pyOCD 从用户空间访问调试探针。否则,您将需要使用 sudo 以 root 身份运行 pyOCD,这是非常不鼓励的。(您永远不应该在任何操作系统上以 root 身份运行 pyOCD。)
为了帮助解决这个问题, udev文件夹中的 pyOCD 包含示例 udev 规则文件 。此文件夹中的 自述文件有详细说明。
目标支持
有关如何检查您使用的 MCU 是否具有内置支持以及如何通过 CMSIS-Packs 安装对其他 MCU 的支持的信息,请参阅目标支持文档。
使用 GDB
有关使用 gdb 和 IDE 设置和使用 pyocd 的指南,请参阅GDB 设置文档。
社区资源
加入 pyOCD 社区!
pyocd.io 网站
文档
问题
讨论
Wiki 公告
邮件列表
为了营造一个健康安全的环境,我们希望贡献者和社区的所有成员都遵守我们的行为准则。
贡献
我们欢迎任何领域的贡献,即使您只是创建一个问题。如果您想参与,但不确定从什么开始,只需在 Slack或GitHub 讨论中提问,我们将很乐意为您提供帮助。或者你可以寻找一个未解决的问题。任何有关重大更改的工作都应与维护人员讨论,以使每个人都保持一致。
有关详细要求,请参阅贡献指南。开发人员指南有关于如何为 pyOCD 设置开发环境的说明。
应该针对分支创建新的拉取请求。develop
(您必须将“基础”更改为develop
。)
执照
PyOCD 使用宽松的 Apache 2.0 许可证。有关许可证的全文,请参阅 许可证文件。所有文档和网站均使用CC BY 4.0许可。
版权所有 © 2006-2022 PyOCD 作者