让 AI 编码助手直接操控编译器、调试器和通信总线,补上嵌入式开发自动化的最后一环
仓库
项目已开源,欢迎提 Issue 和 PR。
前言
之前对于AI在嵌入式开发中的使用主要是分析代码、生成代码,但是AI生成的代码通常不能一次性成功,需要下载到芯片多次调试反馈AI再调后才能使用。
但是随着使用ClaudeCode、Codex的时间越长,慢慢发现,AI非常善于使用命令行,最近各大软件也纷纷推出自己的CLI工具。此时突然明白了Skill的一个重要的用法,就是将一些命令行工具的使用沉淀为Skill,让AI在合适的地方自己去调用这些工具,完成原本MCP的功能。
于是我就去调研,看看SMT32开发工具中,有没有这样的实现。结果是这些工具都有对应的命令行工具及实现。
所以,现在我们能将AI在嵌入式领域的开发中,编译、调试验证的最后一小步打通,形成闭环开发。
为什么需要它
嵌入式开发有一道纯软件开发没有的鸿沟:写完代码只是开始,编译、烧录、调试每一步都需要人在中间传递信息。
AI 改完代码 → 你手动编译 → 你手动烧录 → 你把报错复制给 AI → AI 再改 → 你再编译……
embeddedskills 把这个循环交给 AI 自己跑:
| 传统 AI 辅助 | AI + embeddedskills | |
|---|---|---|
| 代码编写 | ✅ AI | ✅ AI |
| 编译构建 | 🙋 你 | 🤖 AI 调用 Keil / GCC |
| 烧录下载 | 🙋 你 | 🤖 AI 调用 J-Link / OpenOCD |
| 调试验证 | 🙋 你 | 🤖 AI 断点 / 寄存器 / 内存 |
| 通信调试 | 🙋 你 | 🤖 AI 串口 / CAN / 网络 |
| 错误修正 | 🙋 你复制报错给 AI | 🤖 AI 自主读取并修正 |
Skill 一览
| 分类 | Skill | 能做什么 | 主要子命令 |
|---|---|---|---|
| 🔨 构建 | keil | Keil MDK 工程扫描、Target 枚举、编译、重建、清理 | scan targets build rebuild clean flash |
| 🔨 构建 | gcc | CMake 型 GCC 工程配置、编译、大小分析 | scan presets configure build rebuild size |
| 🔬 调试 | jlink | 烧录、读写内存/寄存器、RTT/SWO、GDB 调试 | flash read-mem write-mem regs rtt swo + GDB |
| 🔬 调试 | openocd | 烧录、擦除、GDB/Telnet、Semihosting/ITM | flash erase reset gdb-server semihosting itm |
| 🔌 通信 | serial | 扫描串口、实时监控、发送数据、Hex 查看 | scan monitor send hex log |
| 🔌 通信 | can | CAN/CAN-FD 监控、发帧、DBC 解码、统计 | scan monitor send decode stats |
| 🔌 通信 | net | 抓包分析、连通性测试、端口扫描、流量统计 | capture analyze ping scan stats |
| 🎯 编排 | workflow | 自动识别工程 → 选择工具链 → 串联全流程 | plan build build-flash build-debug observe diagnose |
[!TIP]
Keil / GCC与J-Link / OpenOCD可自由正交组合,四种搭配均可开箱即用。
外部依赖
展开查看各 Skill 所需依赖| Skill | 依赖 |
|---|---|
| keil | Keil MDK (UV4.exe) |
| gcc | CMake · Ninja/Make · ARM GNU Toolchain |
| jlink | SEGGER J-Link Software · arm-none-eabi-gdb |
| openocd | OpenOCD · 调试器驱动 (ST-Link / CMSIS-DAP / DAPLink / FTDI) |
| serial | pyserial · USB 转串口驱动 |
| can | python-can · cantools · pyserial · USB-CAN 驱动 |
| net | Wireshark (tshark) · Npcap |
除 CAN 和串口外,所有 Skill 均基于 Python 标准库实现,无需额外安装 Python 依赖。
1. 安装
方式一:npx(推荐)
借助 skills CLI 工具,一条命令即可完成安装:
# 安装全部 skill(自动检测 AI 工具并安装)
npx skills add https://github.com/zhinkgit/embeddedskills -g -y

# 只安装某个 skill(如只需要 openocd)
npx skills add https://github.com/zhinkgit/embeddedskills --skill openocd -g -y
# 管理
npx skills ls -g # 查看已安装列表
npx skills update -g # 更新到最新版本
npx skills remove -g # 移除
方式二:手动 clone
若 npx skills 不可用,直接 clone 到对应目录:
# Claude Code(全局生效)
git clone https://github.com/zhinkgit/embeddedskills.git ~/.claude/skills/embeddedskills
# Codex(全局)
git clone https://github.com/zhinkgit/embeddedskills.git ~/.codex/skills
# Codex(仅当前项目)
git clone https://github.com/zhinkgit/embeddedskills.git .codex/skills

常见 Skill 目录参考:
| AI 工具 | 全局路径 | 项目级路径 |
|---|---|---|
| Claude Code | ~/.claude/skills/ | .claude/skills/ |
| Codex | ~/.codex/skills/ | .codex/skills/ |
| 通用 | ~/.agents/skills/ | .agents/skills/ |
| Cursor / OpenCode | 参考对应工具文档 | — |
2. 验证安装
安装完成后,在 AI 助手中输入 /,能看到 OpenOCD、keil 等命令描述即为成功。

[!TIP]
看不到斜杠命令?按以下顺序排查:
- Skill 目录路径是否正确(注意全局 vs 项目级)
SKILL.md文件是否完整存在于每个 Skill 子目录下- AI 工具是否支持 Skill 协议或自定义指令加载
3. 配置环境参数
Skill 采用三层配置,优先级从高到低:
CLI 参数
└─► skill/config.json ← 工具路径、本机硬件参数(UV4.exe、JLink.exe 等)
└─► .embeddedskills/config.json ← 工程默认配置(目标芯片、接口、日志目录)
└─► .embeddedskills/state.json ← 运行状态(上次构建/烧录/调试记录)
└─► 默认值
[!NOTE]
不需要手动编辑配置文件。首次使用时直接和 AI 对话,AI 会根据上下文引导你填写工具路径、目标芯片等参数,并自动写入配置文件。
4. 硬件连接 & 工具链验证
使用 CMSIS-DAP 调试器(如 DAPLink)连接开发板。
[!IMPORTANT]
建议在让 AI 接管之前,先手动跑一次编译和烧录,确认工具链本身没问题。这样后续如果出错,可以确定问题在代码而不在环境配置。
手动验证编译:


手动验证烧录:

5. 让 AI 接管
Skill 的 description 字段定义了触发关键词,AI 会自动识别意图并调用对应 Skill。说人话就够了,不需要记命令:
| 你说 | AI 触发的 Skill |
|---|---|
| “帮我编译一下” | keil 或 gcc |
| “烧录到板子上” | openocd 或 jlink |
| “看看串口输出” | serial |
| “单步调试一下” | openocd 或 jlink |
| “看看寄存器” | openocd 或 jlink |
| “一键编译烧录调试” | workflow |
AI 自主完成编译下载:


AI 自主调试:

每次调用结果自动记录到项目目录下的 .embeddedskills/ 文件夹,方便后续排查问题:



此后的开发模式变为:描述需求 → AI 生成代码 → 自动编译烧录调试 → 迭代修改,直到功能完成。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/qq_46248368/article/details/160208553



