【官方原创】LAT1696 编译与调试STM32CubeMX2生成的Open-CMSIS工程
01 | 前言
STM32CubeMX2与STM32CubeMX比较,支持的工程格式有相同的部分,例如Cmake,IAR格式,也有全新的格式,例如Open-CMSIS格式。首先,要理解什么是Open CMSIS格式。本文所说的Open-CMSIS工程,实际对应的是基于CMSIS Solution的工程组织方式,通常以.csolution.yml作为顶层描述文件。
CSolution项目格式可以支持多种编译器,包括AC6,IAR和GCC的命令行调用。而IAR和GCC的命令行调用可以直接使用STM32CubeMX2支持的IAR和CMake格式来完成同样功能,所以我们这里只使用AC6。
谈到AC6编译器,我们就不陌生了。我们常用的Keil uVision5就是使用AC6编译器。所以从这个角度,我们看到,STM32CubeMX2继承了STM32CubeMX所支持的三类编译器,IAR,Keil AC6以及GCC。
那么,CSolution使用的IDE环境是什么呢?CSolution正式的IDE环境叫Keil Studio Pack,它和STM32CubeIDE for Visual Studio Code相同的地方都是基于VSCode。
02 | 生成Open-CMSIS AC6工程
和其他格式相比,生成Open-CMSIS AC6工程,区别就在STM32CubeMX2的【Project Settings】中的【IDE Project Generation】。
选择【Format】为OpenCMSIS,然后选择【Open-CMSIS toolchain】为AC6,最后点击【Generate IDE project】

生成的工程顶层目录结构为一个ioc2文件以及demo_open-cmsis文件夹。

demo_open-cmsis文件夹目录结构为

其中demo.csolution.yml就是我们需要使用的csolution工程文件。那么,你就可以直接在当前目录右键使用【Open with Code】打开该工程。

如果不能打开,先打开VSCode,然后通过打开文件夹的方式打开这个文件夹。
03 | 使用Keil Studio打开
打开csolution工程文件的前提是你已经在VSCode中安装了Keil Studio Pack,例如版本1.20.1:


注意keil-studio的插件可能会被自动更新,如果你使用本文发现现象并不匹配,则应当严格使用本文指定的版本,并取消自动更新。如果已经被自动更新了,对于发生错误的组件,则卸载以前的版本,重启环境,安装特定的版本,例如,选择Arm CMSIS

Debugger为1.3.0且指定不自动更新。

打开之后可以看到图标。

点击它可以看到在右边显示如下菜单:

首先点击
![]()
【Manage Solution Settings】进行工程的配置。其中Debug选择【ST-LINK@pyOCD】


然后选择底边栏

配置工具链,它会弹出

选择【Add Arm Tools Configuration to Workspace】它会弹出【Arm Registry】界面。
|
|
|
|
注意上述界面已经包含我所选择的工具链。
保存弹出的vcpkg-configuration.json界面。也可以在这个界面回顾一下所选的版本。注意,没有特别的版本要求,第一次选最新就可以了,第二次为了节省下载时间,可选择上次已经安装的工具相应版本。

请注意在编译之前,一定要等到系统配置成功,

直接点击
![]()
进行编译就可以了。需要的工具链会被自动进行下载。
编译的效果如下:

04 | 调试
我们已经选择了pyocd进行调试,那么调试的执行就是一个按钮就可以了。点击按钮,就能快速启动调试界面(如果不能下载后,不能跳到main,可以尝试将目标板断电再试)。

其他单步调试和寄存器查看,不在这里赘述。
05 | 小结
本文介绍了STM32CubeMX2中Open-CMSIS项目格式的使用流程,包括工程生成,工程打开,编译配置,调试配置,编译以及调试启动。
点击下载《编译与调试STM32CubeMX2生成的Open-CMSIS工程》原文档。
重要通知 - 请仔细阅读
意法半导体公司及其子公司 (“ST”)保留随时对 ST 产品和 / 或本文档进行变更的权利,恕不另行通知。买方在订货之前应获取关于 ST 产 品的最新信息。 ST 产品的销售依照订单确认时的相关 ST 销售条款。 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息,请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财 产。 本文档是ST中国本地团队的技术性文章,旨在交流与分享,并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致,请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档(包括代码,电路图 等)信息, 我们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2020 STMicroelectronics - 保留所有权利
更多推荐




所有评论(0)