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 - 保留所有权利

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐