pyocd Pack 安装与使用指南

pyocd Pack 安装与使用指南

概述

pyocd 通过 CMSIS-Pack 获取目标芯片的 Flash 算法、SVD 文件等设备信息。使用 pyocd 连接芯片前,需要先安装对应的 Pack。


方法一:从网络下载安装(推荐)

1. 更新 Pack 索引

1
pyocd pack update

从官方服务器下载所有厂商的 Pack 描述文件(.pdsc),构建本地索引。耗时约 1~2 分钟。

2. 查找设备对应的 Pack

1
pyocd pack find <型号>

示例:

1
pyocd pack find PY32F003

输出示例:

1
2
3
4
5
6
  Part           Vendor   Pack                Version   Installed
-------------------------------------------------------------------
  PY32F003x4     Puya     Puya.PY32F0xx_DFP   1.2.8     False
  PY32F003x6     Puya     Puya.PY32F0xx_DFP   1.2.8     False
  PY32F003x7     Puya     Puya.PY32F0xx_DFP   1.2.8     False
  PY32F003x8     Puya     Puya.PY32F0xx_DFP   1.2.8     False

3. 安装 Pack

按设备型号通配符安装(推荐)

1
pyocd pack install -u "PY32F0*"

-u 表示先更新索引,再下载匹配型号的 Pack。

安装具体型号对应的 Pack

1
pyocd pack install -u PY32F003x6

一步完成索引更新和安装

1
pyocd pack install --update "PY32F0*"

下载完成后,pyocd 会自动将 Pack 文件存放到本地缓存目录。


方法二:安装本地 Pack 文件

适用于已有离线 .pack 文件的场景(如厂商提供的 MDK Pack)。

Pack 文件存放路径

Windows:

1
C:\Users\<用户名>\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\

目录结构:

1
2
3
4
5
cmsis-pack-manager/
  VendorName.DeviceName_DFP.x.x.x.pdsc    # Pack 描述文件
  VendorName/
    DeviceName_DFP/
      x.x.x.pack                           # Pack 数据文件

手动安装步骤

Puya.PY32F0xx_DFP.1.2.6.pack 为例:

1. 从 pack 文件中提取 .pdsc 描述文件

Pack 文件本质是 zip 压缩包,解压出其中的 .pdsc 文件:

1
unzip Puya.PY32F0xx_DFP.1.2.6.pack Puya.PY32F0xx_DFP.pdsc

2. 重命名并放入缓存根目录

1
2
mv Puya.PY32F0xx_DFP.pdsc Puya.PY32F0xx_DFP.1.2.6.pdsc
# 移动到 C:\Users\<用户名>\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\

3. 创建版本目录并放入 pack 文件

1
2
mkdir -p Puya/PY32F0xx_DFP
cp Puya.PY32F0xx_DFP.1.2.6.pack Puya/PY32F0xx_DFP/1.2.6.pack

4. 重新生成索引(可选)

1
pyocd pack update

查看已安装的 Pack

1
pyocd pack show

输出示例:

1
2
3
4
  Pack                Version
-------------------------------
  Puya.PY32F0xx_DFP   1.2.8
  Puya.PY32F4xx_DFP   1.0.3

常用命令汇总

命令 作用
pyocd pack update 更新 Pack 索引
pyocd pack find <pattern> 查找设备对应的 Pack
pyocd pack install -u <pattern> 下载安装指定设备的 Pack
pyocd pack show 显示已安装的 Pack 列表
pyocd pack clean 清空所有 Pack 索引和已安装文件
pyocd list --targets 列出所有可用的目标设备

使用 Pack 烧录/调试

安装 Pack 后,pyocd 会自动识别对应的目标芯片。

列出可用目标

1
pyocd list --targets | grep PY32F0

连接并烧录

1
2
3
4
5
6
7
8
# 自动识别目标
pyocd flash firmware.hex

# 指定目标型号
pyocd flash --target PY32F003x6 firmware.hex

# 指定 pack 路径(离线场景)
pyocd flash --pack "E:/Packs/Puya.PY32F0xx_DFP.1.2.6.pack" --target PY32F003x6 firmware.hex

GDB 调试服务器

1
pyocd gdbserver --target PY32F003x6

常见问题

Q: pyocd pack install 提示 “No matching devices”

A: install 的参数是设备型号(如 PY32F003x6),不是 Pack 名称(如 Puya.PY32F0xx_DFP)。先用 pyocd pack find 查找正确的型号,或使用通配符如 "PY32F0*"

Q: 网络下载太慢或失败

A: 可直接从厂商官网下载 .pack 文件,然后按「方法二:安装本地 Pack 文件」手动放入缓存目录。

Q: pyocd pack show 显示已安装,但连接设备时提示找不到 Flash 算法

A: 检查 pack 缓存目录中是否同时存在 .pdsc 描述文件和对应版本的 .pack 数据文件。pyocd 的索引 (index.json) 引用的版本号必须与 .pack 文件名中的版本号一致。

Q: 如何删除某个 Pack?

A: pyocd 没有单独的删除命令。直接删除缓存目录中对应的 .pack 文件和 .pdsc 文件即可:

1
2
3
# Windows 示例
rm "C:\Users\<用户名>\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\Puya\PY32F0xx_DFP\1.2.8.pack"
rm "C:\Users\<用户名>\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\Puya.PY32F0xx_DFP.1.2.8.pdsc"

Pack 缓存目录速查

系统 路径
Windows %LOCALAPPDATA%\cmsis-pack-manager\cmsis-pack-manager\
Linux/macOS ~/.local/share/cmsis-pack-manager/

文档基于 pyocd 0.44.1 编写。

世界是你们
使用 Hugo 构建
主题 StackJimmy 设计