从实际工作情况,介绍嵌入式(MCU)软件开发常用(通用)工具

目录

前言

1、代码阅读及编辑工具(VSCode、Understand)

2、代码对比工具(Beyond Compare)

3、代码仓库相关工具(Git、SVN、Tortoise)

4、文本编辑器(Notepad++)

5、电脑文件搜索工具(Everything)

6、截图工具(Snipaste)

7、画图工具(draw.io)

8、有道翻译

9、桌面日历(Desktop Calendar)

结束


前言

说起平时进行软件开发时使用的工具这个话题。

我偶尔会看到有一些同事在某些工作场景下,由于不知道某些工具的使用,导致浪费很多不必要时间或导致出现一些不必要问题。

举些栗子。

栗子1:有时候我们不知道把某个文档放到哪里去了,然后找半天。比如我曾碰到有同事在开会的时候,需要给大家发文档,他找了半天,真的是看得我捉急的呀。

哥,有个软件叫做“EveryThing”,哪怕只记得一点点文档的名称,都不至于找半天的。。。

栗子2:曾经碰到有同事把自己的测试代码传到了代码库上,然后大家并没发现,导致后来出现了比较严重的问题,领导痛批了一顿。

像这种问题,首先肯定是自己的粗心大意了,但是,我们是汽车行业写代码的呀,我们的代码跟汽车的安全息息相关啊。虽然没人敢保证自己任何时候都不粗心大意,但是,我们是可以用好一些工具,去最大程度规避自己的粗心大意的。

...

好了,废话不多说,接下来我们看一下嵌入式软件开发都要用到哪些工具,以及怎么用好这些工具。(另外,文章所有展示的图片代码都为Git上Infineon官方开源代码)

首先,我会用较大的篇幅讲一下代码阅读及编辑工具,因为用好代码阅读及编辑工具,对我们软件开发工程师来说实在是太重要了。有人说,作为软件开发工程师,第一个讲的居然不是IDE?

但我想说,公司要用哪些IDE哪里是想用哪个就用哪个的,因此本文就不讲IDE了。(IDE:即集成开发环境,直接理解为代码编译环境就行

1、代码阅读及编辑工具(VSCode、Understand

建议:VSCode编写代码、Understand阅读代码,两者搭配使用

关于代码阅读及编辑工具,据我目前了解,主流的工具有下面这3个。

VS Code、②Understand、③Source Insight、

前言

说起平时进行软件开发时使用的工具这个话题。

我偶尔会看到有一些同事在某些工作场景下,由于不知道某些工具的使用,导致浪费很多不必要时间或导致出现一些不必要问题。

举些栗子。

栗子1:有时候我们不知道把某个文档放到哪里去了,然后找半天。比如我曾碰到有同事在开会的时候,需要给大家发文档,他找了半天,真的是看得我捉急的呀。

哥,有个软件叫做“EveryThing”,哪怕只记得一点点文档的名称,都不至于找半天的。。。

栗子2:曾经碰到有同事把自己的测试代码传到了代码库上,然后大家并没发现,导致后来出现了比较严重的问题,领导痛批了一顿。

像这种问题,首先肯定是自己的粗心大意了,但是,我们是汽车行业写代码的呀,我们的代码跟汽车的安全息息相关啊。虽然没人敢保证自己任何时候都不粗心大意,但是,我们是可以用好一些工具,去最大程度规避自己的粗心大意的。

...

好了,废话不多说,接下来我们看一下嵌入式软件开发都要用到哪些工具,以及怎么用好这些工具。(另外,文章所有展示的图片代码都为Git上Infineon官方开源代码)

首先,我会用较大的篇幅讲一下代码阅读及编辑工具,因为用好代码阅读及编辑工具,对我们软件开发工程师来说实在是太重要了。有人说,作为软件开发工程师,第一个讲的居然不是IDE?

但我想说,公司要用哪些IDE哪里是想用哪个就用哪个的,因此本文就不讲IDE了。(IDE:即集成开发环境,直接理解为代码编译环境就行

1、代码阅读及编辑工具(VSCode编写代码、Understand阅读代码,两者搭配使用

关于代码阅读及编辑工具,据我目前了解,主流的工具有下面这3个。

VS Code、②Understand、③Source Insight、

前言

说起平时进行软件开发时使用的工具这个话题。

我偶尔会看到有一些同事在某些工作场景下,由于不知道某些工具的使用,导致浪费很多不必要时间或导致出现一些不必要问题。

举些栗子。

栗子1:有时候我们不知道把某个文档放到哪里去了,然后找半天。比如我曾碰到有同事在开会的时候,需要给大家发文档,他找了半天,真的是看得我捉急的呀。

哥,有个软件叫做“EveryThing”,哪怕只记得一点点文档的名称,都不至于找半天的。。。

栗子2:曾经碰到有同事把自己的测试代码传到了代码库上,然后大家并没发现,导致后来出现了比较严重的问题,领导痛批了一顿。

像这种问题,首先肯定是自己的粗心大意了,但是,我们是汽车行业写代码的呀,我们的代码跟汽车的安全息息相关啊。虽然没人敢保证自己任何时候都不粗心大意,但是,我们是可以用好一些工具,去最大程度规避自己的粗心大意的。

...

好了,废话不多说,接下来我们看一下嵌入式软件开发都要用到哪些工具,以及怎么用好这些工具。(另外,文章所有展示的图片代码都为Git上Infineon官方开源代码)

首先,我会用较大的篇幅讲一下代码阅读及编辑工具,因为用好代码阅读及编辑工具,对我们软件开发工程师来说实在是太重要了。有人说,作为软件开发工程师,第一个讲的居然不是IDE?

但我想说,公司要用哪些IDE哪里是想用哪个就用哪个的,因此本文就不讲IDE了。(IDE:即集成开发环境,直接理解为代码编译环境就行

1、代码阅读及编辑工具(VSCode编写代码、Understand阅读代码,两者搭配使用

关于代码阅读及编辑工具,据我目前了解,主流的工具有下面这3个。

VS Code、②Understand、③Source Insight、

据我目前接触,VSCode是用的人最多的,其次是SourceInsight,Understand就比较少人用了。当然,还有一些“狠人”是不用这些工具的,直接在IDE编译工具里面搞代码。

关于这3款软件,我个人的建议是:VSCode用来写代码、Understand用来看代码,不建议使用Source Insight。

原因如下:

首先我们先想一下我们使用看代码工具的原因是为什么,为什么闲着没事不直接用IDE看代码,而要另外下载这些软件?

①写代码更方便、②看代码更方便、③掌握工程代码文件结构、④降低各种IDE的学习成本

关于第③点:当你知道整个代码工程里都都有什么模块,各个模块的放在文档的哪个位置,这样会极大提高你的工作效率和对整个代码工程更加清晰。简单来说,就是能以上帝视角看整个工程

接下来我们针对这几个点逐一讨论。

①写代码更方便(强推VSCode)。

写代码倒还好,反正是按照自己的逻辑写嘛,用啥工具都问题不大,能自动缩进、识别字符和结构体等等,能加快一下写代码的效率就好了。

关于这一点,VSCode就做得很不错,SourceInsight也还行。Understand就不行了,完全不建议用Understand写代码,用它写代码,就跟用.txt写代码一样。

②看代码更方便(强推Understand)

看代码更方便就很重要了,看代码方便能极大提高工作效率。

对软件开发工程师来说,特别是对于用购买的代码包进行开发的软件工程师,其实更多的时间是在看代码,分析代码。

这时候,工具起的作用就很大了,我们需要工具有这些功能:

a、能够让我们快速找到函数的调用关系

b、能够让我们快速找到变量的读写位置

特别是,如果很多地方调用目标函数,或者很多地方读写目标变量的时候,我们需要快速定位我们想要的位置。

关于这一点,我认为Understand做得是最好的。

比如找函数名称或者变量名称的时候,右上角搜索,然后下面会全部展示出来,并且左边还会同步对应到那个文件,全都能在一个界面完成

对比其它工具,Understand不用像SourceInsight那样,搜索个东西还要各个界面跳来跳去,费时间而其搞得脑子很混乱。

其次,它还有个浏览当前文件全部函数的下拉框,找函数特别方便

据我目前使用,其它工具好像都没有这个功能,SourceInsight和VSCode虽然有类似的功能,但是它们这里不但包含函数名,而且还包含各种别的东西,就比较混乱。

Understand更强的是,它能直接给出函数调用关系图:

总结来说,Understand工具能跟上我的手速和思维。

快速掌握工程代码文件结构(强推Understand)

先举个反面栗子,Source Insight你创建和打开工程后,它默认是这样的:

一眼看去,什么感觉?

感觉把握不住这个工程!

.c.h文件全部堆一块,几千个文件,太多了,把握不住啊!熟悉工程的话倒勉强能行,但是如果是新人,我要怎么样才能从这一堆的.c.h里面找到想要的东西?

但是,对VSCode和Understand,它们默认是按文件夹放的:

是不是这样一看,就感觉拿捏了整个工程代码?就算是个新人,也能通过这些文件夹名称来逐步熟悉工程。

但是对这个功能来说,Understand还是更胜一筹。

因为,Understand的搜索框和搜索结果框、还有文件夹界面,全部在同一个界面!比如,当我找一个目标函数时,当找到目标函数后,还能马上知道这个目标函数文件所在文件夹的位置。在这个过程中,我对整个工程文件结构又更清晰了一点。

④降低各种IDE的学习成本

在我们软件开发的工作中,我们肯定不可避免地接触各种IDE,比如Keil、IAR、HighTec、Tasking等等。不同的芯片厂家不同的IDE。

要是每个都去研究它们怎么看代码、写代码,太费劲了。

所以,我们只要学会了Understand/VSCode,无论代码工程是基于什么厂家芯片的,都没关系了,我们只需要知道IDE怎么编译就行了。

...

关于代码阅读及编辑工具就先讲到这里,其它还有一些细节就不描述了。

总结而言,Understand对阅读代码来说是最好用的,但是它是绝对不适合用来写代码的,用它写就跟在.txt写代码一样。VSCode则更适合写代码,并且阅读代码勉强也还可以,不算太拉,但跟Understand比就差挺多了。

有人认为,同时用两个工具是不是太麻烦了。

这个就要看自己的喜好了。

有些人愿意麻烦些,也要让思维飞起来。有些人愿意让思维慢一些,也不要这么麻烦。

2、代码对比工具(Beyond Compare)

关于代码对比工具,搞软件开发的都应该知道是这个Beyond Compare软件。

对于这个对比代码工具,使用的方式很重要。

还记得文章开头说的那个栗子嘛:开发时不小心把调试代码给上传了。

我个人认为,这个工具的用法之一,就能避免这样的情况。

怎么做呢?

把相同的代码复制成两份,分别为:代码编译及上传工程代码编写工程

我们写代码的时候,就在代码编写工程上面写,写好之后,就使用Beyond Compare工具,把我们写好的代码同步到代码编译及上传工程上。

简单来说,就是在这个过程中,自己进行了一次检查,保证自己要上传到代码库上的代码都是自己要改的

这样检查一遍,很容易就发现自己有没有粗心导致误改代码了。

当然,这只是这个工具的用法之一,其它情况还有很多,就不细讲了。

3、代码仓库相关工具(Git、SVN、Tortoise)

代码仓库就是多人协同开发同一个代码工程时需要用到。

这个的跟IDE有点类似:都不是我们能决定的,公司用的是什么,我们就用什么就好了,因此,等具体用到时,不懂在百度就好。

据我目前所知,代码仓库分别有:Git、SVN

连接代码仓库的媒介,叫做小乌龟(Tortoise)。

简单来说就是,通过小乌龟,①把自己电脑的代码上传到Git或SVN、②从Git或SVN下载代码到自己电脑。

比如上传代码,像这样:

对于小乌龟,这里有一个必备小窍门。

比如你按照上面那样点击Commit后,出现如下界面:

它会列出差异文件出来,这时你打开其中一个,想看看差异:

看见没,这个格式会看得很头疼,因为它是小乌龟自带的对比工具。

因此,可以设置一下小乌龟,把对比工具设置成我们的Beyond Commpare软件,这样点击打开就直接默认用Beyond Commpare软件对比了。

4、文本编辑器(Notepad++)

简单来说,它是用来替代文本的工具。

用来看单个文件的代码也是非常好使的。

5、电脑文件搜索工具(Everything)

这个用法也很简单了。

就是在整个电脑所有文件和文件夹里,快速搜索你输入的关键词。

使用体验就是:快,特别快。一输入就能立刻全部冒出来,特别方便。

6、截图工具(Snipaste)

对于截图的操作,我们也经常会用到。

用了这个工具之后,这辈子也不想用Windows自带的截图工具和快捷截图功能了。

这个截图工具,它可以把截图钉在屏幕上、可以对图片进行编辑、保存等各种操作。

7、画图工具(draw.io)

在平时的工作中,我们经常会碰到画一些流程图的情况。

这个工具是开源免费的工具,画好之后可以导出为各种格式的图片,且无水印

想起这个画图工具,就想起之前的经历。

由于之前不知道这些工具,画流程图的时候上网百度去下载了一些看着很官方很强的画图工具,画了半天图,要导出图片出来,结果一定会有他们软件名称的水印,去水印还得花钱,真的是气死人。

8、有道翻译

是的,你没看错,没错就是它:有道翻译.

我们搞软件开发的,总是要看一些英文文档的。

而它,就是看英文文档利器!

贴个图给你们看下就明白了:

它已经可以直接截图翻译了!

但是它有个很烦人的地方,打开后老是在鼠标右边贴这个图标,鼠标到哪,它就在哪,老挡着东西,特别烦:

我们把它关掉就好了。

9、桌面日历(Desktop Calendar)

可以记录一下每天自己干了什么事情、有些重要的事情也直接在电脑桌面就记录下来了。

使用情况很多,特别很方便就是了。

结束

好了,关于嵌入式(MCU)软件开发通用工具就讲到这里了。

另外说明一下,本文仅为我的个人观点和使用感受,并无对文中提及但不建议使用的工具的批判

工具嘛,只要自己认为用的好用就行,就像笔一样,有的人觉得这支笔好用,有的人觉得那只笔好用。

反正,只要能更大程度提高我们的工作效率,能给我们带来工作方便的就是好工具。


发表日期:2023.12.31

朋友们,关注下我呀,我以我过来人,再用小白的角度认真写的知识总结一定让你的脑子饿肚子进来,扶墙出去...

返回目录:

Autosar BSW 开发笔记(目录)-CSDN博客


关于本文推荐的工具,公众号直接发送“工具”即可领取哦,

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

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

相关文章

【LeetCode:2660. 保龄球游戏的获胜者 | 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

PAT 乙级 1046 划拳

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

Python序列之集合

系列文章目录 Python序列之列表Python序列之元组Python序列之字典Python序列之集合(本篇文章) Python序列之集合 系列文章目录前言一、集合是什么?二、集合的操作1.集合的创建(1)使用{}创建(2)…

SpringBoot定时监听RocketMQ的NameServer

问题分析 自己在测试环境部署了RocketMQ,发现namesrv很容易挂掉,于是就想着监控,挂了就发邮件通知。查看了rocketmq-dashboard项目,发现只能监控Broker,遂放弃这一路径。于是就从报错的日志入手,发现最终可…

【MATLAB第87期】#源码分享 | 基于MATLAB的增量神经系统网络SFAM多输入单输出多分类预测模型

【MATLAB第87期】#源码分享 | 基于MATLAB的增量神经系统网络SFAM多输入单输出多分类预测模型 前言 SFAM是一种增量神经网络分类器。它是模糊ARTMAP(FAM)的一个简单而快速的版本。如果输入相同,FAM和SFAM的产出相同。 参考文献: [1] Kasuba, T. (1993)…

【MMdetection】MMdetection从入门到进阶

基础环境安装 步骤 0. 从官方网站下载并安装 Miniconda。 步骤 1. 创建并激活一个 conda 环境。 conda create --name openmmlab python3.8 -y conda activate openmmlab步骤 2. 基于 PyTorch 官方说明安装 PyTorch。 pip install torch2.0.1 torchvision0.15.2 torchaudio…

【MySQL表的增删查改】

文章目录 前言1 Create1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 2 Retrieve2.1 SELECT 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重 2.2 WHERE 条件2.2.1 英语不及格的同学及英语成绩 ( &…

C++基础:指针数组和数组指针(大白话讲解)

指针数组&#xff1a;本质上是一个数组&#xff0c;数组中的每一个元素都是一个指针&#xff1b; 数组指针&#xff1a;本质上是一个指针&#xff0c;数组指针是一个指向数组的指针。 为了更直观的分析他们的区别&#xff0c;我举个例子&#xff1a; #include<iostream&g…

操作系统:可变分区管理

有作业序列&#xff1a;作业A要求42K&#xff1b;作业B要求27K&#xff0c;作业C要求22K&#xff0c;作业和空闲内存区如下图所示&#xff0c;请画出最佳适应算法空闲队列图&#xff0c;并分析最佳适应算法是否适合该作业系列。 答&#xff1a;最佳适应算法是按照空闲块由小到大…

【辐射场】3D Gaussian Splatting

三维高斯…喷喷 \, 3D Gaussian Splatting&#xff0c;下文简称3DGS&#xff0c;是好一段时间以来在三维内容创作和三维重建领域比较有热度的一项技术。 它属于基于图像的三维重建方法&#xff0c;意思就是你对现实物体或者场景拍照片&#xff0c;就能给你训练成一个场景模型&a…

C语言之整型提升

文章目录 1 有可能出现的问题2 产生以上问题的原因&#xff08;整型提升&#xff09;3 整型提升的过程4 整型提升示例5 总结 1 有可能出现的问题 代码如下 #include <stdio.h>int main () {int a -1;unsigned int b 1;if (a < b) {printf("a < b");}…

【Spring Security】认证之案例的使用、MD5加密、CSRF防御

目录 一、引言 1、什么是SpringSecurity认证 2、为什么使用SpringSecurity之认证 3、实现步骤 二、快速实现&#xff08;案例&#xff09; 1、添加依赖 2、配置 3、导入数据表及相关代码 4、创建登录页及首页 5、创建配置Controller 6、用户认证 6.1、用户对象User…

WEB 3D技术 three.js通过 GLTFLoader 导入并应用 gltf/glb 3D资源

上文 WEB 3D技术 three.js 雾 基础使用讲解我们讲了雾的基本使用方法 但是 如果我们要做一个树林 一颗一颗树去加 那真的是要累死了 我们一定是在建模软件上 建模好这样的模型 然后将模型导入到场景中 官网中搜索 GLTFLoader 在我们日常WEB开发中 用的最多的3D格式 就是 GLTF…

python练习2【题解///考点列出///错题改正】

一、单选题 【文件】 *1.【单选题】 ——文件&#xff1a;读取方法 下列哪个选项可以从文件中读取任意字节的内容&#xff1f;&#xff08;C &#xff09;A A.read() B.readline() C.readlines() D.以上全部 A\B\C三种方法都是可以读取文件中任意的字节内容的&#xff0…

Lesson 06 vector类(上)

C&#xff1a;渴望力量吗&#xff0c;少年&#xff1f; 文章目录 一、vector是什么&#xff1f;二、vector的使用1. 构造函数2. vector iterator3. vector 空间增长问题4. vector增删查改 三、vector实际使用 一、vector是什么&#xff1f; vector是表示可变大小数组的序列容器…

LVGL 在framebuffer设备上的移植

LVGL 在framebuffer设备上的移植 ItemDescDate2023-12-31Authorhongxi.zhuplatformNXP I.MX6ULLLCDSPI TFTLCD NV3030B 文章目录 LVGL 在framebuffer设备上的移植一、LVGL源码获取二、源码修改适配三、编译&运行补充 一、LVGL源码获取 新建lvgl_imx6ull文件夹&#xff0c…

低代码开发中业务蓝图的重要性:业务需求与系统实现的桥梁

在低代码应用开发领域&#xff0c;业务蓝图是一个至关重要的工具&#xff0c;它提供了组织业务流程需求的详细信息。它类似于一份指导开发人员进行应用开发的路线图&#xff0c;确保与业务的战略目标和需求保持一致。 低代码方法学&#xff0c;顾名思义&#xff0c;即减少了传…

Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序

这篇论文主要讨论了大型语言模型&#xff08;LLM&#xff09;在机器人控制方面的应用。作者们指出&#xff0c;尽管LLM在理解和生成自然语言方面表现出色&#xff0c;但其在实际应用中&#xff0c;如机器人控制等领域的应用仍然有限。因此&#xff0c;他们提出了一种新的方法&a…

登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10

人工智能太疯狂&#xff0c;传统劳动力和内容创作平台被AI枪毙&#xff0c;弃尸尘埃。并非空穴来风&#xff0c;也不是危言耸听&#xff0c;人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程&#xff0c;你问我绘画行业未来的样子&#xff1f;我只好指着Cont…

每日一题——LeetCode976

方法一 个人方法 找规律&#xff1a; 要求要围成三角形且周长最大&#xff0c;那么三条边自然是越大且越接近越好。那么我们就从最大的三条边开始看能不能围成三角形。如果不能组成三角形&#xff0c;则丢弃最长的那条&#xff0c;再取剩余边里最长的那条再看能不能组成三角形…