您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

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

时间:2023-03-09 11:58:50  来源:今日头条  作者:漫漫开发路

去年我们官宣了 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++并选择工作负载。

 

 

今天,我们的导入器要求你将 STM32CubeIDE 软件安装在平台的默认位置。我们一直在使用 STM32CubeIDE 1.9.0 和 STM32CubeMX 6.5.0 测试此功能。如果你并排安装了多个实例,我们无法控制选择哪个实例。

还需要在 STM32CubeIDE 中获取设备的板级支持包。这样我们就可以从 Visual Studio 中使用 ST 提供的编译器和支持应用程序。

或者,你可以使用 STM32CubeCLT ,其中包括此体验所需的一切,包括编译器,编程器和调试器。

安装我们的先决条件后,从 Visual Studio 中转到文件,打开,导入 STM32CubeIDE 项目。

 

 

导航到你的 ST .cproject 所在的位置并选择它。然后,可以选择调试或发布配置。现在,可以选择“生成”以使用 CMake 编译固件。若要调试,请选择“调试”视图,然后选择启动按钮。这将运行 STM32 编程器将固件烧录到设备上并使用 GDB 连接。从这里,我们所有的嵌入式开发视图(串行、RTOS 和外设)都可用。

如果你的项目有 .ioc 文件,你还可以打开上下文菜单并为您的项目打开 STM32CubeMX。

 

 

理解 CMake 互操作性

你可以看到简单的 CMakeLists.txt,它是在 .cproject 所在的项目的根目录中生成的。这依赖于 cmake 目录下生成的 CMake 文件。这些文件中的路径设置为计算机上 ST 编译器的发现位置。如果你打算从 ST 项目格式迁移到 CMake,我们建议根据需要调整这些文件,尤其是在路径可能不同的团队中使用。

需要注意的另一件事是,有时在 STM32CubeIDE 示例中,项目可能位于源代码的子目录中。如果在文件视图中看不到项目文件,这可能是原因。选择 CMake 目标视图,应会看到 CMake 用于生成生成的所有内容。

根据上述观点,我们建议在使用 STM32CubeMX 生成项目时,将项目管理器中“在根下生成”中的默认值保留为选中状态。这会将你的 .cproject 保留在包含生成的源文件的文件夹的根目录中。STM32CubeIDE也是默认生成项目的方式。

如果在 STM32CubeIDE 中再次打开项目,则需要从项目中排除 CMake 使用的构建目录。右键单击生成目录,然后选择“资源配置”>“从生成中排除”。然后选择“调试”和“发布”。

 

 

 

 

总结

可以使用 Visual Studio 编写 ST 项目的代码,确实是一个微软进军非 Windows 生态系统的好兆头。
也说明了,她有了一些危机感。技术的升维变革,不会提前跟你打招呼,你需要始终看的更远一点,并做好十足的准备应对挑战。



Tags:Visual Studio   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
前端开发:Visual Studio Code和Visual studio如何选?
Visual Studio Code和Visual studio都是微软的集成开发环境(IDE),那么在实际工作中该如何选择呢。贝格前端工场对二者做一番对比,帮助您决策一下。一、Visual Studio Code的介绍...【详细内容】
2024-02-27  Search: Visual Studio  点击:(46)  评论:(0)  加入收藏
微软发布 Visual Studio for Mac 退役公告
出品 | OSC开源社区(ID:oschina2013)微软发布了 Visual Studio for Mac 退役的公告。公告写道,最新版本 Visual Studio for Mac 17.6 会继续获得额外 12 个月的支持,直至 2024...【详细内容】
2023-08-31  Search: Visual Studio  点击:(308)  评论:(0)  加入收藏
微软宣布明年 8 月 31 日停止支持 Mac 版 Visual Studio IDE
IT之家 8 月 31 日消息,微软开发者博客发布更新,宣布适用于 Mac 平台的 Visual Studio 集成开发环境(IDE)于今天启动“退休”进程。Visual Studio for Mac 17.6 将继续支持 12...【详细内容】
2023-08-31  Search: Visual Studio  点击:(177)  评论:(0)  加入收藏
手把手将Visual Studio Code变成Python开发神器
Visual Studio Code 是一款功能强大、可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一下面我们将学习如何安装 Visual Studio Code 并...【详细内容】
2023-08-28  Search: Visual Studio  点击:(276)  评论:(0)  加入收藏
设置Visual studio,使页面显示行号
我们在调试代码的过程中,经常会出现报错,会显示到具体的哪一行出现错误。但是Visual studio默认不带行号,需要我们修改显示配置,从而显示行号。打开Visual studio软件,在最上方找...【详细内容】
2023-05-25  Search: Visual Studio  点击:(393)  评论:(0)  加入收藏
导入你的 ST 项目到 Visual Studio,你学会了吗?
去年我们官宣了 Visual Studio Code 可以直接导入 ST 项目,今天再次宣布:它的好兄弟 Visual Studio 2022 17.6 也支持此功能,详细请看下文。在 ARM 微控制器领域,有许多芯片供应...【详细内容】
2023-03-09  Search: Visual Studio  点击:(443)  评论:(0)  加入收藏
微软集成开发环境Visual Studio 2022 17.5正式发布
IT之家 2 月 22 日消息,微软集成开发环境(IDE)工具 Visual Studio 2022 于今天发布了 17.5 正式版更新,适用于 Windows 和 macOS 平台的版本已开放下载。Visual Studio 2022 17....【详细内容】
2023-02-22  Search: Visual Studio  点击:(165)  评论:(0)  加入收藏
Visual Studio新功能出炉:低优先级构建
近日,C++开发团队很高兴地宣布,一项C++社区高呼的功能:低优先级构建,已经成功开发完成。借助我们合作伙伴团队的反馈和协作,你现在可以在 Visual Studio 中启动低优先级构建。 这...【详细内容】
2022-07-30  Search: Visual Studio  点击:(466)  评论:(0)  加入收藏
用于高效 Web 开发的 10 个 Visual Studio 代码扩展
机翻自 Nazere Wright 的 《10 Visual Studio Code Extensions for Productive Web Development》。Visual Studio Code可以说是软件开发人员最流行,最广泛采用的代码编辑器...【详细内容】
2022-07-30  Search: Visual Studio  点击:(381)  评论:(0)  加入收藏
主流开发工具Vue和微软Visual Studio前后端联合调试攻略
引言应用主流的前端开发工具Vue和后端开发工具微软Visual Studio 2019,进行前后端联合调试,不适为中小型应用的一种常用简便调试方法,现介绍如下。Vue 读音/vjuː/,类似view,是...【详细内容】
2022-03-21  Search: Visual Studio  点击:(861)  评论:(0)  加入收藏
▌简易百科推荐
C++中的外部模板及其在当前编译文件中的实例化
在C++中,模板是一种泛型编程的工具,它允许程序员以一种类型无关的方式编写代码。然而,模板的一个常见问题是它们会导致编译时间增加,特别是在大型项目中,当多个源文件包含相同的...【详细内容】
2024-04-11  鲨鱼编程  微信公众号  Tags:C++   点击:(2)  评论:(0)  加入收藏
C++常见避坑指南
C++ 从入门到放弃?本文主要总结了在C++开发或review过程中常见易出错点做了归纳总结,希望借此能增进大家对C++的了解,减少编程出错,提升工作效率,也可以作为C++开发的避坑攻略。...【详细内容】
2024-04-03  腾讯技术工程    Tags:C++   点击:(5)  评论:(0)  加入收藏
C++ 之父反驳白宫警告:自诞生第一天起,C++ 的目标就一直是提高安全性
整理 | 郑丽媛上个月,美国白宫国家网络主任办公室(ONCD)在一份主题为《回到基础构件:通往安全软件之路》的 19 页 PDF 报告中,呼吁开发人员停止使用容易出现内存安全漏洞的编程语...【详细内容】
2024-03-25    CSDN  Tags:C++   点击:(4)  评论:(0)  加入收藏
八个 C++ 开源项目,帮助初学者进阶成长
通过参与或阅读开源项目的源代码,你可以获得丰富的实践机会。实际的项目代码比简单的教程更具挑战性,可以帮助你深入理解 C++ 的各种概念和技术。1.ThreadPool一个简单的 C++1...【详细内容】
2024-03-22  AI让生活更美好  微信公众号  Tags:C++   点击:(21)  评论:(0)  加入收藏
C# 中15个值得收藏的开源项目推荐
在开源的世界里,C# 编程语言也占有一席之地。这些开源项目涵盖了多个领域,从框架、库到工具,它们为C#开发者提供了丰富的资源和工具,帮助他们更高效地开发、测试和部署应用程序...【详细内容】
2024-03-20  程序员编程日记  微信公众号  Tags:C#   点击:(30)  评论:(0)  加入收藏
C#异步编程:Task.Run vs. async-await,掌握基础与高级用法
概述:C#中的异步编程有两主要方式:Task.Run用于在后台线程执行同步操作,而async-await更适用于清晰表达异步流程。基础用法展示了它们的简单应用,高级用法则演示了它们的结合使...【详细内容】
2024-03-09  架构师老卢  今日头条  Tags:C#   点击:(23)  评论:(0)  加入收藏
C++多线程编程:解锁性能与并发的奥秘
今天我们将深入探讨C++中的多线程编程,揭示多线程如何解锁性能潜力,提高程序的并发性能。什么是多线程?在计算机科学中,多线程是指一个进程(程序的执行实例)中的多个线程同时执行...【详细内容】
2024-02-03     AI让生活更美好  Tags:C++   点击:(69)  评论:(0)  加入收藏
C++代码优化攻略
今天我们将深入探讨C++性能优化的世界。在当今软件开发的浪潮中,高性能的代码是必不可少的。无论是开发桌面应用、移动应用,还是嵌入式系统,性能都是关键。1. 选择合适的数据结...【详细内容】
2024-01-26  AI让生活更美好  微信公众号  Tags:C++   点击:(115)  评论:(0)  加入收藏
C# 线程本地存储为什么线程间值不一样
为什么用 ThreadStatic 标记的字段,只有第一个线程拿到了初始值,其他线程都是默认值,让我能不能帮他解答一下,尼玛,我也不是神仙什么都懂,既然问了,那我试着帮他解答一下,也给后面类...【详细内容】
2024-01-26  一线码农聊技术  微信公众号  Tags:C#   点击:(68)  评论:(0)  加入收藏
C++质数检测器的设计与实现​
质数,作为数学中的一个基本概念,一直以其独特的性质吸引着众多研究者和爱好者。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。在实际应用中,质数检测也扮演着...【详细内容】
2024-01-15  鲨鱼编程  微信公众号  Tags:C++   点击:(115)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条