去年我们官宣了 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 的工具结合使用。
这篇文章假设对 ST 器件、开发工具和嵌入式开发有一定的了解。如果你需要一些背景知识,我们推荐以下Shawn Hymel关于STM32入门的文章。
《Introduction to STM32CubeIDE》
《Introduction to FreeRTOS》
我们依靠 vcpkg 来管理像 CMake 和 Ninja 这样的依赖项,包括获取它们并使它们可用于你的开发环境。你可以在 Visual Studio 嵌入式开发概述中了解有关 vcpkg 的更多信息。你可以将其安装在适用于你的平台的单个 shell 命令中,在 Windows 上你应该使用此 PowerShell 命令。
iex (iwr -useb
https://aka.ms/vcpkg-init.ps1)
你将需要随 Linux 和嵌入式开发一起安装 Visual Studio 2022 17.6 预览版 1 或更高版本C++并选择工作负载。
>> 请移步至 topomel.com 以查看图片 <<
今天,我们的导入器要求你将 STM32CubeIDE 软件安装在平台的默认位置。我们一直在使用 STM32CubeIDE 1.9.0 和 STM32CubeMX 6.5.0 测试此功能。如果你并排安装了多个实例,我们无法控制选择哪个实例。
还需要在 STM32CubeIDE 中获取设备的板级支持包。这样我们就可以从 Visual Studio 中使用 ST 提供的编译器和支持应用程序。
或者,你可以使用 STM32CubeCLT ,其中包括此体验所需的一切,包括编译器,编程器和调试器。
安装我们的先决条件后,从 Visual Studio 中转到文件,打开,导入 STM32CubeIDE 项目。
>> 请移步至 topomel.com 以查看图片 <<
导航到你的 ST .cproject 所在的位置并选择它。然后,可以选择调试或发布配置。现在,可以选择“生成”以使用 CMake 编译固件。若要调试,请选择“调试”视图,然后选择启动按钮。这将运行 STM32 编程器将固件烧录到设备上并使用 GDB 连接。从这里,我们所有的嵌入式开发视图(串行、RTOS 和外设)都可用。
如果你的项目有 .ioc 文件,你还可以打开上下文菜单并为您的项目打开 STM32CubeMX。
>> 请移步至 topomel.com 以查看图片 <<
你可以看到简单的 CMakeLists.txt,它是在 .cproject 所在的项目的根目录中生成的。这依赖于 cmake 目录下生成的 CMake 文件。这些文件中的路径设置为计算机上 ST 编译器的发现位置。如果你打算从 ST 项目格式迁移到 CMake,我们建议根据需要调整这些文件,尤其是在路径可能不同的团队中使用。
需要注意的另一件事是,有时在 STM32CubeIDE 示例中,项目可能位于源代码的子目录中。如果在文件视图中看不到项目文件,这可能是原因。选择 CMake 目标视图,应会看到 CMake 用于生成生成的所有内容。
根据上述观点,我们建议在使用 STM32CubeMX 生成项目时,将项目管理器中“在根下生成”中的默认值保留为选中状态。这会将你的 .cproject 保留在包含生成的源文件的文件夹的根目录中。STM32CubeIDE也是默认生成项目的方式。
如果在 STM32CubeIDE 中再次打开项目,则需要从项目中排除 CMake 使用的构建目录。右键单击生成目录,然后选择“资源配置”>“从生成中排除”。然后选择“调试”和“发布”。
>> 请移步至 topomel.com 以查看图片 <<
可以使用 Visual Studio 编写 ST 项目的代码,确实是一个微软进军非 Windows 生态系统的好兆头。
也说明了,她有了一些危机感。技术的升维变革,不会提前跟你打招呼,你需要始终看的更远一点,并做好十足的准备应对挑战。
Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Importing ST projects into Visual Studio》
上一篇:预测性维护方案在化工行业的应用
下一篇:机器学习学习记录1:假设空间