STM32C5DevSkills
面向 STM32C5 的七技能包,通过 cube、CubeMX2 和原生工具完成环境准备、工程创建、外设配置、固件开发、构建、烧录与调试。
内容中文为主,采用“简短入口 + 按场景选择的命令与 API 参考”。面向 Windows、Linux、macOS,覆盖裸机与 FreeRTOS;新建默认 CubeMX2、HAL2、CMake、Ninja、GCC。适合需要明确操作顺序、参数和检查点的编码助手。
本包整体安装;包内参考资料可相互引用,不依赖其他 STM32 技能包。它提供指令和资料,不包含工具二进制、SDK、运行包装脚本或开发板固件。
安装
两种方式选一种,避免重复发现相同技能。
git clone https://github.com/keysking/STM32C5DevSkills.git
cd STM32C5DevSkills
标准技能目录
克隆本仓库,将七个 stm32c5-* 目录一起复制到目标工程的 .agents/skills/,或客户端支持的用户级技能目录。不能只复制 SKILL.md 或单个技能。
PowerShell,在克隆目录执行;目标路径输入实际工程根目录:
$project = Read-Host '目标工程根目录的绝对路径'
if (-not (Test-Path -LiteralPath $project -PathType Container)) { throw '目标工程不存在' }
$dest = Join-Path $project '.agents/skills'
$skills = @(Get-ChildItem -LiteralPath './skills' -Directory -Filter 'stm32c5-*')
if ($skills.Count -ne 7) { throw '请在完整仓库根目录执行' }
foreach ($skill in $skills) {
if (Test-Path -LiteralPath (Join-Path $dest $skill.Name)) { throw "已存在 $($skill.Name),先比较已有版本" }
}
New-Item -ItemType Directory -Path $dest -Force | Out-Null
foreach ($skill in $skills) {
Copy-Item -LiteralPath $skill.FullName -Destination $dest -Recurse
}
Linux/macOS Bash,在克隆目录执行:
read -r -p '目标工程根目录的绝对路径: ' project
test -d "$project" || exit 1
dest="$project/.agents/skills"
skills=(skills/stm32c5-*)
test "${#skills[@]}" -eq 7 || exit 1
for skill in "${skills[@]}"; do
test ! -e "$dest/$(basename "$skill")" || { echo "已有同名技能,请先比较"; exit 1; }
done
mkdir -p "$dest"
for skill in "${skills[@]}"; do cp -R "$skill" "$dest/"; done
重新加载客户端或开始新会话,确认发现七个 stm32c5-* 技能。其他支持标准 SKILL.md 的客户端按其目录规则安装完整 skills/ 内容。
Codex 插件
插件名 stm32c5-dev-skills,显示名称 STM32C5DevSkills,版本 0.1.0,要求本地执行环境。根 plugin.json 和 .codex-plugin/plugin.json 使用同一份技能。
在克隆目录运行支持插件命令的 Codex CLI:
codex plugin marketplace add .
codex plugin list
codex plugin add stm32c5-dev-skills@stm32c5-dev-skills
codex plugin list
重启会话,确认插件已启用且发现七技能。客户端显示的调用名称可能带 stm32c5-dev-skills: 命名空间,按实际发现名称调用。命令不支持时先查看 codex plugin --help,也可用标准目录安装。
此为仓库本地 marketplace 安装,不代表插件已上架公共目录。结构依据:官方插件打包、本地执行声明。
前置工具
cube/ STM32CubeCLI,已安装并可解析 CubeMX2。- 目标 C5 DFP、HAL2/LL、CMSIS 及工程需要的其他 Pack。
- 新建默认 GCC、CMake、Ninja;已有工程保留其工具链。
- 烧录/调试需要支持目标器件的 STM32CubeProgrammer、ST-Link/GDB 工具及实际硬件。
- FreeRTOS 工程另外需要相应中间件与正确 port。
不要求所有工具预先位于 PATH。先调用 stm32c5-env,按工具定位和后端启动找到实际安装与版本。
七项能力
| 技能 | 用途 | 请求示例 |
|---|---|---|
| stm32c5-env | 工具、版本、依赖、三平台环境 | “找出我的 CubeMX2,并检查 C5 编译环境。” |
| stm32c5-project | 新建、接手、例程、生成边界 | “新建 C532CCT6,USART1 用 PA9/PA10。” |
| stm32c5-configure | 引脚、时钟、外设、DMA/IRQ、RTOS | “PA8 输出 1 kHz PWM,保留现有业务代码。” |
| stm32c5-firmware | HAL2/LL、移植、任务与同步 | “用两个 FreeRTOS 任务通过队列传递数据。” |
| stm32c5-build | 编译、链接、ELF/map/占用 | “修复 HSE API 编译错误并检查内存占用。” |
| stm32c5-flash | 识别目标、下载、校验、启动 | “将这个 ELF 下载到指定 ST-Link 的 C5 板。” |
| stm32c5-debug | 启动、Fault、外设、RTOS 诊断 | “DMA 收到第一帧后停止,帮我定位。” |
三条工作流
- CubeMX2 新建与维护:按任务选择环境、工程、配置、固件、构建以及所需的烧录/调试能力;新建方法见创建与导出。创建空工程不自动附带串口、LED 或 RTOS。
- 官方 SDK / Example Library / Pack 工程:识别版本和目录,先构建原例程,再调整板级配置与应用;见例程入口。
- 无生成器或已有手写工程:保留现有构建与初始化,按 C5 HAL2/LL 接口维护;不要求强制转换成
.ioc2。
按场景的配置参考覆盖 GPIO/EXTI、时钟、UART、I2C、SPI、TIM/PWM、ADC、中断/DMA 和 FreeRTOS。只读取当前任务相关章节,不必把全部资料加载进上下文。
如何使用命令参考
- 每节说明适用条件和调用形式;整篇文档不是待逐条执行的脚本。GPIO 输出、EXTI、LL 切换,以及轮询、IT、DMA 等分别按需求选择。
- 文中的型号、引脚、实例、频率、容量、路径及名称用于说明语法。实际值来自用户需求、板卡、现有工程和工具查询,不能原样复制为默认配置。
- 先查询当前状态及可用参数。资料未列出所有功能时,用所列帮助、参数查询和项目头文件继续确定用法,不猜测命令。
- 查询任务取得结果即结束;修改任务只改变需求项及必要依赖。修改后回读、保存重载,需同步固件时再生成、比较并构建。
- API 片段说明接口与生命周期,应用自行提供真实数据、缓冲区、超时及错误处理;不要求加入演示任务或固定闪灯逻辑。
适用条件
- 命令路径与参数参考基于 CubeMX2 CLI 1.1.2、C5 DFP/HAL2 2.1.0;代表型号为
STM32C532CCT6。FreeRTOS 参数依据 Pack 2.2.0。实际项目约束优先,升级后重新查询参数和头文件。 - C5 使用 CubeMX2;传统 CubeMX 的
.ioc与 Java 脚本不用于此路线。.ioc2不是纯 JSON。 - 重新生成默认导出到新的空目录,再比较和合并;不使用
--force覆盖业务代码。 - 引脚、时钟、内存、DMA 和 RTOS 配置必须与实际型号及板卡相符;示例不能替代原理图和数据手册。
- 三平台都有操作说明,实际硬件功能仍需在对应板卡验证。构建、下载校验与功能测试是三个不同完成状态。
许可
本包使用 MIT,版权主体为 STM32C5DevSkills contributors。ST、Arm、FreeRTOS 和其他工具/SDK 的名称及许可归各自权利人;本包不重新分发它们的二进制或源代码包。