Skip to main content

用于 Python 的 Cortex-M 调试器

项目描述

强迫症

[pyocd.io] [文档] [Slack] [邮件列表] [CI 结果]

消息

  • 用于功能测试的新 CI 管道现在正在新的测试场上运行。完整结果可在 Azure Pipelines 上公开访问。
  • pyOCD 有几个新的社区资源:pyocd.io网站、Slack 工作区和公告邮件列表
  • 分支配置更改:默认分支master已重命名为main,并develop添加了一个分支以用于主动开发。新的拉取请求通常应针对develop. 有关此更改的更多信息,请参阅此讨论

查看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 的微控制器
  • 支持的调试探针
    • CMSIS-DAP v1 (HID) 或 v2 (WinUSB),包括:
      • 爱特梅尔 EDBG/nEDBG
      • 爱特梅尔-ICE
      • 赛普拉斯 KitProg3 或 MiniProg4
      • 基于DAPLink的调试探针,板载或独立
      • 凯尔ULINKplus
      • NXP LPC-LinkII
      • 恩智浦 MCU-Link
    • PE微旋风和Multilink
    • 树莓派微型探针
    • SEGGER J-Link
    • STLinkV2 或 STLinkV3,板载或独立版本

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.

PyPIGitHub 上提供了最新的 pyOCD 包。

要从develop分支的 HEAD 安装最新的预发布版本,您可以执行以下操作:

$ python3 -mpip install --pre -U git+https://github.com/pyocd/pyOCD.git@develop

您还可以通过克隆 git 存储库并运行以下命令直接从源安装:

$ python3 pip install .

请注意,根据您的操作系统,您可能会遇到运行这些命令的权限问题。你有几个选择:

  1. 在 Linux 下,运行 withsudo -H以全局安装 pyOCD 和依赖项。在 macOS 上,永远不需要使用 sudo 进行安装,尽管有时权限可能会被修改,这样不使用 sudo 的安装就会失败。
  2. 指定在--user本地安装到您的用户帐户的选项。
  3. 在特定项目工作集的本地虚拟环境中运行命令。

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 公告
邮件列表

为了营造一个健康安全的环境,我们希望贡献者和社区的所有成员都遵守我们的行为准则

贡献

我们欢迎任何领域的贡献,即使您只是创建一个问题。如果您想参与,但不确定从什么开始,只需在 SlackGitHub 讨论中提问,我们将很乐意为您提供帮助。或者你可以寻找一个未解决的问题。任何有关重大更改的工作都应与维护人员讨论,以使每个人都保持一致。

有关详细要求,请参阅贡献指南开发人员指南有关于如何为 pyOCD 设置开发环境的说明。

应该针对分支创建新的拉取请求。develop(您必须将“基础”更改为develop。)

执照

PyOCD 使用宽松的 Apache 2.0 许可证。有关许可证的全文,请参阅 许可证文件。所有文档和网站均使用CC BY 4.0许可。

版权所有 © 2006-2022 PyOCD 作者