• 正文
  • 相关推荐
申请入驻 产业图谱

编译与调试 STM32CubeMX2 生成的 Open‑CMSIS 工程

19小时前
322
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

STM32CubeMX2 除支持传统 IAR、CMake 工程输出之外,新增Open‑CMSIS(CSolution)工程格式,顶层工程描述文件为*.csolution.yml,该格式由 Arm 推出,支持 AC6、IAR、GCC 多套编译器,在 VS‑Code 环境下依靠Keil Studio Pack 扩展完成编译下载调试。

很多开发者初次接触该工作流容易踩坑:扩展版本自动更新引发兼容性异常、工程无法识别、工具链下载失败、下载固件后无法停到 main 函数。本文基于 ST 官方 LAT1696 文档完整梳理工程生成、环境准备、工程导入、工具链配置、编译调试全流程,梳理高频故障排查要点。

重要区分:Open‑CMSIS(CSolution)使用 Keil Studio Pack 扩展;CMake 工程使用 STM32CubeIDE for VS‑Code 扩展;两套 VS‑Code 扩展不可混用,建议使用 Profile 做环境隔离。

资料获取:【实战经验】LAT1696 编译与调试STM32CubeMX2生成的Open-CMSIS工程

1 Open‑CMSIS(CSolution)基础概念

  1. Open‑CMSIS 工程,核心是csolution.yml,也叫 CSolution 工程;
  2. 支持编译器:AC6(Arm Compiler 6,Keil MDK‑V6 使用编译器)、IAR、GCC;本文重点使用 AC6;
  3. IDE 载体:VS‑Code + Arm Keil Studio Pack 扩展包,和传统 Keil uVision5 不是同一套程序;
  4. 底层构建工具:cbuild,自动拉取 CMSIS‑Toolbox、编译器、ninja 等工具链组件。

2. STM32CubeMX2 生成 Open‑CMSIS AC6 工程

  1. 在 STM32CubeMX2 完成芯片选型、引脚时钟、外设配置,保存.ioc2工程配置;
  2. 打开【Project Settings】→【IDE Project Generation】;
  3. Format选项选择Open‑CMSIS,Open‑CMSIS toolchain选择AC6;
  4. 点击【Generate IDE project】生成工程。

生成后目录结构

输出目录包含.ioc2配置文件与xxx_open‑cmsis工程文件夹。 工程文件夹内关键文件:

  • demo.csolution.yml:CSolution 顶层工程描述文件;
  • arch、project、stm32c5xx_dfp、stm32c5xx_drivers:驱动、DFP 固件包、用户代码目录。

打开工程两种方式:

  1. 在工程文件夹右键,选择【Open with Code】直接唤起 VS‑Code;
  2. 先打开 VS‑Code,执行「打开文件夹」,选中xxx_open‑cmsis目录。

3. VS‑Code 环境准备

安装指定版本 Keil Studio Pack

VS‑Code 扩展市场安装Arm Keil Studio Pack (MDK v6),文档验证版本为1.20.1。

高频坑:扩展自动更新后容易出现版本不兼容。 处理方法:点击扩展设置齿轮,选择Install Specific Version安装指定版本,关闭 Auto Update 自动更新。配套Arm CMSIS Debugger建议锁定版本 1.3.0。

安装完成后 VS‑Code 侧边栏出现 CMSIS 解决方案视图图标。

4. CSolution 工程配置步骤

4.1 打开解决方案设置(Manage Solution Settings)

  1. 点击 CMSIS 视图右上角齿轮图标【Manage Solution Settings】;
  2. Debug Adapter 调试适配器选择ST‑Link@pyOCD;
  3. Debug Interface 选择 SWD,调试时钟建议设置 4000kHz;勾选Update launch.json and tasks.json自动生成调试任务配置,保存配置。

4.2 Arm 工具链环境配置

  1. 点击底部状态栏工具配置按钮,选择【Add Arm Tools Configuration to Workspace】;
  2. 在Arm Registry工具注册表界面,选择各工具版本:
    • Arm CMSIS‑Toolbox:2.12.0
    • Arm Compiler for Embedded:6.24.0
    • MDK‑Toolbox:1.1.0
    • Kitware CMake:3.31.5
    • Ninja Build:1.13.2
    • 其余工具选择None;
  3. 保存后生成vcpkg‑configuration.json配置文件。

首次编译会联网自动下载上面全套工具链,网络异常会直接编译失败。

5. 工程编译

工具链环境就绪之后,在 CMSIS 视图点击 Build 编译按钮,底层调用cbuild命令执行构建。 示例命令行:

cbuild demo.csolution.yml --target all --active NUCLEO‑C5A3ZG --packs --skip‑convert

终端观察输出,编译无报错即可产出固件镜像。

6. 下载与调试

  1. ST‑Link 调试器连接开发板,硬件供电;
  2. CMSIS 视图点击调试启动按钮;使用 pyOCD 完成下载、进入调试会话;

常见现象:下载成功,但是无法停在 main 函数。临时处理手段:开发板断电重新上电,再次启动调试会话。

  1. 后续支持单步、断点、寄存器查看等常规调试操作。

7. 故障排查清单

  1. VS‑Code 打开文件夹,CMSIS 视图识别不到 csolution 工程
    • 确认打开的是xxx_open‑cmsis文件夹,不要向上 / 向下选错目录;确认目录内存存在demo.csolution.yml;
    • 确认 Keil Studio Pack 扩展已启用,没有禁用。
  2. 编译报错,工具链组件下载失败
    • 检查网络,需要访问 Arm 工具仓库;企业内网需要放行网络访问;
    • 核对vcpkg‑configuration.json各工具版本;可以复用本地已经下载过的工具版本减少下载耗时。
  3. 编译成功,下载成功,但程序不跑,不会停到 main
    • 硬件层面:尝试板子完全断电再重新上电,再启动调试;
    • 检查 pyOCD 调试适配器配置,SWD 接口,调试时钟参数。
  4. 升级扩展版本之后工程异常、功能消失
    • 不要使用自动更新,按照文档锁定扩展指定版本;卸载新版本,手动安装经过验证的版本,关闭自动更新。
  5. 混淆两套 VS‑Code 扩展,拿 STM32CubeIDE for VS‑Code 打开 CSolution 工程
    • Open‑CMSIS CSolution 工程只能使用 Keil Studio Pack 扩展;CMake 工程使用 STM32CubeIDE for VS‑Code,两套扩展不能混用;建议使用 VS‑Code Profile 功能做两套环境隔离。

8. 小结

  1. STM32CubeMX2 新增 Open‑CMSIS(CSolution)工程输出,顶层文件为.csolution.yml,主要配合 VS‑Code + Arm Keil Studio Pack扩展,使用 AC6 编译器。
  2. 关键风险点:扩展自动更新会引入兼容性问题,建议锁定验证过的扩展版本,关闭自动更新;Open‑CMSIS 与 CMake 两套 VS‑Code 环境需要区分,推荐 Profile 隔离。
  3. 完整流程:CubeMX2 生成 Open‑CMSIS 工程 → VS‑Code 安装 Keil Studio Pack → Manage Solution Settings 配置调试适配器 → 配置 Arm Registry 工具链 → cbuild 编译 → pyOCD 下载调试。
  4. 调试遇到下载成功不进入 main,优先对目标板断电重启,这是该工作流常见临时处理手段;编译依赖联网下载工具链,内网环境需要处理网络访问。

9. FAQ

Q:Open‑CMSIS 工程可以使用 GCC/IAR 编译器吗?

A:csolution 格式原生支持 IAR/GCC,本文案例重点演示 AC6;在 CubeMX2 生成时切换 toolchain 选项即可。

Q:csolution 工程和传统 uVision .uvprojx 工程可以互相直接转换吗?

A:不能直接双向转换;csolution 是新一代工程描述格式,面向 VS‑Code Keil Studio Pack。

Q:离线环境可以编译 Open‑CMSIS 工程吗?

A:默认流程需要联网下载工具链;离线需要预先准备好全套 cmsis‑toolbox、编译器、ninja 组件,在 vcpkg 配置指向本地缓存。

免责声明:本文全部基于 ST 官方 LAT1696 文档,实际开发请以 Arm CMSIS‑Toolbox 文档、STM32CubeMX2 官方说明为准。

相关推荐