Visual Studio会让嵌入式开发变得更香

在几个月之前,我一直非常喜欢用Source Insight看代码,主要是习惯了原来的风格。

从Source Insight 转到vscode 的原因是,在腾讯使用samba连接Source Insight看代码非常非常卡,让我觉得很难受。

然后是在同事的建议下更换了vscode,里面有一个remote-ssh的功能非常非常爽,而且也不用想vim生成tags很麻烦,也不用像Source Insight要同步一些标识符后才可以跳转。

除此之外,还有很好看的皮肤,很多好用的插件,但是插件不建议开很多,有可能会把你的服务器给弄崩了。一些常用的插件还是可以用的,比如高亮标识符,过滤字符串这些常见的功能。

像全局搜索,查找替换,列编辑模式,hex查看,那真的一用一个爽啊。

这软件真心可以推荐,希望大家在写代码的路上,不要被一些鸡毛蒜皮的事情给耽搁了。

以下是黄兄的关于vscode支持嵌入式RTOS的内容正文。

RTOS、MCU软件的开发,我们常用Keil、IAR等集成开发环境(IDE)。

最近,微软Visual Studio团队成员宣布:Visual Studio 2022 预览版添加了新的嵌入式开发功能

支持RTOS ThreadX、STM32等嵌入式软件的编辑、编译、调试等功能,具有外设寄存器、RTOS状态等视图状态窗口。

给大家看一下基于ThreadX、STM32调试状态下的界面:

8af0934daf5d6653b8799e16b3b20f12.png

这个界面看着是不是有基于MCU、RTOS开发情况下的味道?

关于Visual Studio

Visual Studio,简称VS,是微软的一套集成开发环境(IDE),类似于Keil、 IAR等,集成了许多工具链,支持微软平台很多软件的开发。

相信有很多人都安装并使用过Visual Studio,VS也是一步一步迭代的工具,早期有很多个版本,我们以前读书那会还是用VC++6.0学习(这也是经典的一个版本),没有猜错,现在有些老的工程师都还在用。

这里的VS,和VS Code是两款不同的工具,VS本身就是集成了很多工具的开发环境,而VS Code主要的功能的编辑功能,也可以安装(集成)各种插件,达到集成开发环境的功能。

VS支持MCU软件开发

VS支持嵌入式软件开发,从公布的消息来看,也是类似安装(增加)了一套嵌入式软件开发的组件(Linux and Embedded Development with C++)。

50925ac8aed7079a6505681f70da96fe.png

安装好VS ,启动工程,选择对应的组件即可进行开发。

当然,除了集成这些工具之外,要顺利进行开发,还需要安装项目必要的一些软件包或工具,比如要使用Azure RTOS ThreadX,需要下载对应代码库:

18797c6eec8e7e3d3a208eb6dcfb314f.png

支持常见的功能

VS新增支持嵌入式开发的一些常见功能,和Keil MDK功能有很多相似。

1.代码浏览(查看)

1d90c12bf7616bae989e2285abcf6163.png

2.调试

4f7496f065c65b05aebbf6348b5b73df.png

3.查看寄存器

0bc0489fef8aa3a6431f94157c1bfeb4.png

4.查看RTOS状态

2b471c8220eb96716929d1efa9a0d362.png

070e8b5b84d6c5da19282fe1673ac9dc.png

更多可以参看博客:

https://devblogs.microsoft.com/cppblog/visual-studio-embedded-development/

最后

目前这个功能在最新的VS 2022预览版中具有,功能应该相对较弱,可能还存在很多不足。

如果要支持类似Keil、 IAR等传统IDE的功能,可能还要迭代多个版本。

因此,不建议大家深入研究,当然可以尝鲜了解其功能。

------------ END ------------


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类和继承

所有的类都派生自Object;派生类引用可以转换成基类;屏蔽基类成员使用关键字new则可以屏蔽基类成员;虚方法和覆写方法基类的方法被标记为virtual 在派生类中有匹配的override方法 For Example: class MyBaseClass{ Virtual public void printf…

现实世界的Windows Azure:采访InishTech的销售及市场部主管Andrew O’Connor

MSDN: 告诉我们关于你们公司的信息以及您为Windows Azure创建的解决方案。O’Connor: InishTech 有点不寻常。我们的软件许可和保护服务(SLPS)平台是一个传统的多租户Windows Azure应用程序,利用Windows Azure SDK、 Windows Azure Dev Fabri…

python第2位的值_Python组通过匹配元组列表中的第二个元组值

在本教程中,我们将编写一个程序,该程序将列表中具有与第二个元素相同的元素的所有元组分组。让我们看一个例子来清楚地理解它。输入值[(Python, nhooos), (Management, other), (Django, nhooos), (React,nhooos), (Social, other), (Business, other)]输…

将源字符串的前count个字符拷贝到目的字符串中strncpy()

将源字符串的前count个字符拷贝到目的字符串中 char *strncpy(char *dest, const char *src, unsigned int count) {assert((NULL ! dest) && (NULL ! dsrc));char *ret dest;if (0 count){return dest;}while (count-- > 0){if (!(*ret *src)) //\0{return des…

珠海半导体公司招聘

受一个朋友所托,帮忙发一个招聘信息公司名字:珠海极海半导体有限公司上班地点:广州岗位名称:FAE工程师岗位要求:薪资:15K左右,会根据实际面试情况做相应调整。一些聊天内容的消息供大家参考&…

类模板 与 模板类

1.类模板与模板类的概念 ⑴ 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自…

python 网站发送验证码_Python爬虫模拟登录带验证码网站

爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。首先得明白cookie的作用,cookie是某些网站为了辨别用户身份、…

二分法查找(Java)

二分法查找 时间复杂度为O(logn) public class BiSearch { public static int search(int[] data, int find){int low 0;int mid 0;int upper 0;if (null data) {return -1;}upper data.length - 1;while (low < upper) {mid (low upper)/2;if (data[mid] &g…

Linux同步原语系列-spinlock及其演进优化

1. 引言通常我们的说的同步其实有两个层面的意思&#xff1a;一个是线程间的同步&#xff0c;主要是为了按照编程者指定的特定顺序执行&#xff1b;另外一个是数据的同步&#xff0c;主要是为了保存数据。为了高效解决同步问题&#xff0c;前人抽象出同步原语供开发者使用。不仅…

[转]我在赶集网的两个月 7.4(完结)

转自&#xff1a;http://www.itiger.cn/?p678 转发这个文章的目的&#xff0c;表示对作者的敬佩&#xff0c;工作就是需要如此&#xff0c;需要有想法&#xff0c;需要总结。赶集少了这样的人才&#xff0c;可悲啊。 发信人: Caolixiang (慕慕珍珍), 信区: WorkLife 标 题: 我…

linux环境部署python3+django

1. 确定Linux安装C/C编译器,在线安装: yum install gcc gcc-c autoconf automake 2. 安装依赖环境: yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 3. …

hp-socket 文本跟图片同时发送_文本、截图和应用,这样「包装」一秒变美观

社交网络被发明出来的一个重要目的就是分享&#xff0c;无论是所见所闻还是喜怒哀乐&#xff0c;亦或是脑海中突然迸发出的一段妙言&#xff0c;某个转瞬即逝的精彩瞬间&#xff0c;一篇深度好文&#xff0c;一个在少数派看到的绝赞应用……分享内容丰富多彩&#xff0c;相比之…

在一个list中增加一个节点

在一个list中增加一个节点typedef struct _list_t {struct _list_t *next;int data; }list;void insert_node(list *head, int i, char x) {list *p head, *q NULL;int j 0;if ((NULL head) || (0 > i)){return ;}while ((NULL ! p) && (j < i-1)){j;p p-&g…

poj2041

简单题 View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define maxn 30char order[maxn];char st[maxn];int l;void work(char ch){char x;int d;switch (ch) …

[转]Angular2 Material2 封装组件 —— confirmDialog确定框

本文转自&#xff1a;https://www.jianshu.com/p/0c566fc1730d 环境&#xff1a; Angular 4.0.0 Angular2 Material2 2.0.0-beta.3 node v7.4.0 npm 4.0.5 使用Dialog封装confirmDialog确定框 源代码 来&#xff0c;首先来看效果图~ 删除例子确定删除框点击确定后返回值1.定义通…

项目实战|100个蓝牙接收器发货了

还记得之前写的这篇文章不&#xff1a;《一个蓝牙实战项目的掏肺总结》&#xff0c;这个项目最近做完了&#xff0c;交了100套出去&#xff0c;这是发货前的大合照&#xff1a;做完此项目&#xff0c;有些许收获&#xff0c;在此分享给大家。东西虽简单&#xff0c;但它依然是一…

删除list中的一个节点

1、删除list中的一个节点&#xff0c;给定位置为i typedef struct _list_t { struct _list_t *next; int data; }list; void delete_node(list *head, int i) {list *p head, *q NULL;int j 0;if ((NULL head) || (0 > i)){return ;}while ((NULL ! p) &&…

内存不足 java.lang.OutOfMemoryError: Java heap space

问题描述Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 解决方案[转] 一直都知道可以设置jvm heap大小&#xff0c;一直用eclipse写/调试java程序。一直用命令行or console加参数跑程序。现象&#xff1a;在eclipse的配置文件eclipse.ini…

【读书笔记】【独立思考】2018-04-03(1)

所有的事物都没有起点&#xff0c;也没有终点&#xff0c;有的只是过程。 不然的话&#xff0c;起点又是从哪里来&#xff1f;起点之前是否还有起点&#xff1f;终点又是从哪里来&#xff1f;终点之后是否还有终点&#xff1f; 从无中来&#xff0c;到无中去&#xff0c;中间的…