pyocd-pack-inject 一键注入pyocd,从此告别 --pack

pyocd-pack-inject

pyocd 装不上本地 .pack?pyocd-pack-inject 一键注入全局缓存,从此告别 --pack

前言

从keil迁移到其他IDE时,遇到的最常见问题就是:
怎么烧录固件?
早期做法简单粗暴,直接使用keil进行固件替换烧录。
怎么调试固件?
换上jlink 开始使用Jflash+OZone
其他调试器怎么办?
当然是放转转
了解到openocd,pyocd等开源调试工具链可以接入
从此烧录就变成了

pyocd flash -t stm32f103c8t6 demo.hex

很方便
然后换了个国产芯片,卒

Running `pyocd flash  -t AT32F425C8T7 --format elf target\thumbv7em-none-eabi\debug\at32f425-hello`
0000832 C Target type at32f425c8t7 not recognized. Use 'pyocd list --targets' to see currently available target types

提示可以联网下载

pyocd pack find af32f425
0000817 W No matching devices. Please make sure the pack index is up to date. [pack_cmd]

折腾了好久,提示没有这个设备的包。。。
然后就知道可以使用本地包

pyocd flash --pack at32f425.pack -t _AT32F425C8T7 demo.hex

总算搞定了,虽然以后每次都要把pack包跟着固件一起分发
就这样拖家带口好几年。。。。

然后实在是受不了了,作为搞软件的,怎么能搞不定这种事

开始尝试copy pack包到官方目录,修改文件等一大堆操作

学艺不精,卒

后面AI如日中天,于是让大肥鱼Deepseek去逆向+工程设计

然后就objk了(借助伟大的Deepseek神力,我就是资深工程师)

pyocd-pack-inject

pyocd 装不上本地 .pack?pyocd-pack-inject 一键注入全局缓存,从此告别 --pack

项目链接:

https://github.com/USTHzhanglu/pyocd-pack-inject

界面:

image

功能:

  • 拖拽安装pack包
  • 查看pack包支持的target
  • 支持GUI和CLI

效果

pyocd list --target | grep -i at32f4
  -at32f425c6t7             ArteryTek                -AT32F425C6T7                AT32F42x Series, AT32F425   pack     
  -at32f425c6u7             ArteryTek                -AT32F425C6U7                AT32F42x Series, AT32F425   pack     
  -at32f425c8t7             ArteryTek                -AT32F425C8T7                AT32F42x Series, AT32F425   pack     
  -at32f425c8u7             ArteryTek                -AT32F425C8U7                AT32F42x Series, AT32F425   pack     
  -at32f425f6p7             ArteryTek                -AT32F425F6P7                AT32F42x Series, AT32F425   pack    

原理

由AI总结:

pyOCD 判定一个 pack "已安装"需同时满足:

  1. index.json 里有该 pack 的记录(用于枚举);
  2. data_path/<vendor>/<pack>/<version>.pack 文件存在。

data_pathcmsis-pack-manager 的用户数据目录:

平台 路径
Windows %LOCALAPPDATA%\cmsis-pack-manager
Linux ~/.local/share/cmsis-pack-manager
macOS ~/Library/Application Support/cmsis-pack-manager

对每个 .pack 手动完成两步注册(不依赖在线索引):
复制文件到上述目录 + 在 index.json merge 一条 from_pack 记录。

尾言

AI时代,功能开发的难点已经从怎么做变成了做什么。最近翻新之前做的项目,之前十天半个月搞定的功能,现在十几分钟就能复刻个一模一样的东西。反而是去思考要做什么功能占据了大部分时间。
以前是能不做的需求就不做,现在是能加的功能就加上~~

posted @ 2026-09-07 12:02  USTHzhanglu  阅读(5)  评论(0)    收藏  举报