导入你的 ST 项目到 Visual Studio,你学会了吗?

去年我们官宣了 Visual Studio Code 可以直接导入 ST 项目 , 今天再次宣布:它的好兄弟 Visual Studio 2022 17.6 也支持此功能 , 详细请看下文 。
在 ARM 微控制器领域 , 有许多芯片供应商 , 其中最大的是意法半导体(ST) 。ST 拥有大量具有多种功能的可用器件 , 以及用于评估这些功能的支持开发板 。他们还生产STM32CubeIDE , 一种用于定位设备的自定义IDE , 以及STM32CubeMX , 一种用于配置设备属性和生成项目的配置工具 。
如果你是已经在使用过 ST 产品的开发人员 , 我不会告诉你任何新内容 。你可能不知道我们为在 Visual Studio 中启用嵌入式开发人员所做的工作 。此嵌入式体验依赖于新的 vcpkg 项目功能来帮助获取工具链和配置开发环境 。为了让使用 ST 芯片的开发人员更容易尝试 Visual Studio Code , 我们一直在与意法半导体合作 , 实现 STM32CubeIDE 项目的导入 。
我们通过从 ST 项目生成一个 CMake 项目来实现这一点 。ST 在其产品组合中提供了许多示例项目 。我们已经使用这种机制验证了示例项目中的构建 , 其中超过3000个 。目前 , 我们的通过率为 99% , 我们正在继续提高 。这使我们相信 , 我们的方法将成功导入你自己的意法半导体项目 。我们的嵌入式工具扩展还支持通过导入器进行设备刷写和调试 , 尽管我们仅在我们拥有的硬件上对此进行了验证 。
这篇文章将介绍这个项目导入器功能如何与 vcpkg 和 ST 的工具结合使用 。
在 Visual Studio 中使用 ST 项目这篇文章假设对 ST 器件、开发工具和嵌入式开发有一定的了解 。如果你需要一些背景知识 , 我们推荐以下Shawn Hymel关于STM32入门的文章 。
《Introduction to STM32CubeIDE》
《Introduction to FreeRTOS》
我们依靠 vcpkg 来管理像 CMake 和 Ninja 这样的依赖项 , 包括获取它们并使它们可用于你的开发环境 。你可以在 Visual Studio 嵌入式开发概述中了解有关 vcpkg 的更多信息 。你可以将其安装在适用于你的平台的单个 shell 命令中 , 在 windows 上你应该使用此 PowerShell 命令 。
iex (iwr -useb

  • 1.

??https://aka.ms/vcpkg-init.ps1)??
你将需要随 linux 和嵌入式开发一起安装 Visual Studio 2022 17.6 预览版 1 或更高版本C++并选择工作负载 。
 
导入你的 ST 项目到 Visual Studio,你学会了吗?

文章插图
 
今天 , 我们的导入器要求你将 STM32CubeIDE 软件安装在平台的默认位置 。我们一直在使用 STM32CubeIDE 1.9.0 和 STM32CubeMX 6.5.0 测试此功能 。如果你并排安装了多个实例 , 我们无法控制选择哪个实例 。
还需要在 STM32CubeIDE 中获取设备的板级支持包 。这样我们就可以从 Visual Studio 中使用 ST 提供的编译器和支持应用程序 。
或者 , 你可以使用 STM32CubeCLT  , 其中包括此体验所需的一切 , 包括编译器 , 编程器和调试器 。
安装我们的先决条件后 , 从 Visual Studio 中转到文件 , 打开 , 导入 STM32CubeIDE 项目 。
 
导入你的 ST 项目到 Visual Studio,你学会了吗?

文章插图
 
导航到你的 ST .cproject 所在的位置并选择它 。然后 , 可以选择调试或发布配置 。现在 , 可以选择“生成”以使用 CMake 编译固件 。若要调试 , 请选择“调试”视图 , 然后选择启动按钮 。这将运行 STM32 编程器将固件烧录到设备上并使用 GDB 连接 。从这里 , 我们所有的嵌入式开发视图(串行、RTOS 和外设)都可用 。
如果你的项目有 .ioc 文件 , 你还可以打开上下文菜单并为您的项目打开 STM32CubeMX 。
 
导入你的 ST 项目到 Visual Studio,你学会了吗?

文章插图
 
理解 CMake 互操作性你可以看到简单的 CMakeLists.txt , 它是在 .cproject 所在的项目的根目录中生成的 。这依赖于 cmake 目录下生成的 CMake 文件 。这些文件中的路径设置为计算机上 ST 编译器的发现位置 。如果你打算从 ST 项目格式迁移到 CMake , 我们建议根据需要调整这些文件 , 尤其是在路径可能不同的团队中使用 。
需要注意的另一件事是 , 有时在 STM32CubeIDE 示例中 , 项目可能位于源代码的子目录中 。如果在文件视图中看不到项目文件 , 这可能是原因 。选择 CMake 目标视图 , 应会看到 CMake 用于生成生成的所有内容 。


推荐阅读