嵌入式工程师常用的软件工具推荐

前言:常言道:工欲善其事,必先利其器。作为一名合格的嵌入式工程师,日常可能需要接触和处理各种奇奇怪怪的问题,这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受,为大家推荐几款嵌入式开发常用的软件。希望本篇博客可以让大家学会使用一些新的工具,当然如果读者朋友有其他的好软件推荐也可以在评论区留言!

推荐软件图:

考虑到作者实际目前偏嵌入式软件工程,所以本篇博客仅推荐嵌入式软件工程师的好工具!

一、Visual Studio Code

VS Code 是一个由微软开发且跨平台的轻量级代码编辑器,全称为 Visual Studio Code。它支持语法高亮、自动补全、重构、查看定义等功能,并且内置了命令行工具和Git版本控制系统。用户可以通过更改主题和键盘快捷方式实现个性化设置,也可以通过扩展程序商店安装扩展来拓展软件功能。

Visual Studio Code 个人感觉最厉害的是其自主性,它可以结合很多差距亦或是编译器进行各式各样的嵌入式研发工作!比如:作者就经常用它进行 Linux 驱动、STM32、ESP8266/32(乐鑫有专门的插件平台)!其中,

Visual Studio Code 的众多插件也是其一大特色!作者这里给大家安利几个插件!

1)、C/C++,这个肯定是必须的。
2)、C/C++ Snippets,即 C/C++重用代码块。
3)、C/C++ Advanced Lint,即 C/C++静态检测 。
4)、Code Runner,即代码运行。
5)、Include AutoComplete,即自动头文件包含。
6)、Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、One Dark Pro,VSCode 的主题。
8)、GBKtoUTF8,将 GBK 转换为 UTF8。
9)、ARM,即支持 ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
14)、TabNine,一款 AI 自动补全插件,强烈推荐,谁用谁知道!

在 Ubuntu 中进行嵌入式开发,VSCode应该更是我们的第一选择。

二、Notepad++

Notepad++ 是 Windows 环境下的一款免费开源的文本编辑器。它功能强大,支持语法高亮显示、多重窗口同步编辑、多国语言和多种编程语言,并且可以加载丰富的插件。Notepad++ 还具有完整的中文接口和 UTF8 技术,适合编写计算机程序代码和制作纯文字说明文件。

下载地址:Download Notepad++ - free - latest version (softonic.com)

用户可以通过安装插件来拓展 Notepad++ 的功能,例如代码折叠、代码提示、文档格式化和文档预览等。此外,Notepad++ 还支持自定义宏,可以帮助用户快速执行重复任务或批量修改文本。

总之,Notepad++ 是一款功能丰富、易于使用且具有良好扩展性的文本编辑器,适用于编写各种类型的文本和代码。

三、Visual Studio

不同于 VSCodeVisual Studio 是一个 IDE,我们可以装一个以备不时之需,比如验证C程序或是进行C#程序开发等。一些与嵌入式相关的模拟器也是基于 Visual Studio,作者平时的CUDA代码亦或是科研工作上的C++代码都会使用 Visual Studio 进行验证模拟工作!

除了标准功能外,Visual Studio 还提供了丰富的扩展和插件,以满足不同领域的需求。例如,用户可以通过安装 C++ 扩展来支持 C++ 编程,或者通过安装 Entity Framework 扩展来支持数据访问。

四、Keil uVision

Keil uVision 是一个由 Keil 公司开发的集成开发环境(IDE),用于嵌入式系统的开发和调试。Keil uVision 基于C语言和其他编程语言,支持各种微控制器和处理器,包括STM32AVRPIC等。

我相信广大的嵌入式工程师没有一个不认识上述界面吧,我们接触最多的 STM32 开发通常用得就是该 IDE 。当然,大家一直诟病的是 Keil uVision 的 UI 界面太丑了!MDK6 其实也即将面世,根据作者的了解貌似 ui 设计依旧没有太大的改善,MDK6 貌似更像一个集合体!

Keil uVision 的主要功能包括代码编辑编译调试仿真等。其中,代码编辑器支持语法高亮、代码折叠、自动补全等功能,可以帮助开发人员快速编写代码。编译功能可以将源代码编译成可执行文件或库,以便在目标设备上运行。调试功能可以帮助开发人员调试和测试代码,包括单步执行、断点设置、变量监视等功能。仿真功能可以模拟目标设备的运行环境,以便测试代码的正确性和可靠性。

五、STM32CubeMX

STM32CubeMX 是一个由 ST 意法半导体公司开发的图形化工具,用于配置和初始化 STM32 微控制器,并生成 C 代码。它提供了一个直观的可视化界面,可以帮助开发人员快速配置和设置微控制器的各种外设、引脚和时钟。

STM32CubeMX 可以直接生成 HAL 库的 STM32 配置程序,极大地方便了个人开发者对于 STM32 系列开发板的使用。熟悉作者本人的应该知道,作者很多项目都是以 HAL 库作为教学的。HAL 库的学习好处是很多的,首先意法半导体已经停止对很多开发板的标准库的维护。其次,FreeRTOS 等 RTOS 对 HAL 库直接提供了接口 API 函数,方便开发移植!

作者有话:

HAL 库是未来低代码量,高封装的趋势。但是,HAL 库本身也存在很多缺点,代码效率低,代码冗余等!而且,CubeMX 主要是针对

六、VMWare Workstation

VMware Workstation 是一款功能强大的虚拟机软件,它可以在一台计算机上模拟多个操作系统和应用程序的环境。

嵌入式工程往往需要进行交叉编译的工作,即在 x86 的架构上编译出 ARM 架构的代码。这种操作往往需要我们在 Linux 系统下进行!考虑到大家办公需求,大部分工程师还是 window 作为日常操作系统的。所以,VMware Workstation 极大的方便了我们日常生活中的开发!当然,ROS 等使用也都是需要依赖 VMware Workstation 下的 Ubuntu 的

七、QT Creator

Qt Creator 是一个跨平台的集成开发环境(IDE),专门用于开发基于 Qt 框架的 C++ 应用程序。它是由 Qt Company 提供的免费开源工具,适用于 Windows、Linux 和 macOS 等操作系统。

QT 可以算是嵌入式工程师中比较庞大的分支,属于嵌入式应用层的开发。与 QT 类似的 ui 开发平台还有很多!但是,QT可以说是目前比较常见且成熟的!C++ 功底还行的读者朋友可以往这方面发展发展,薪资待遇都是很不错的!

当然,QT 也可以用来进行简单的 C++ 入门学习仿真使用! 

八、MobaXterm

MobaXterm 我愿称为最强串口调试助手!!!

MobaXterm 是一款功能强大的远程终端模拟器,适用于 Windows Linux 操作系统。它提供了一个集成的远程终端和 X 服务器,可以连接各种类型的远程主机,包括SSH、FTP、Telnet等。关键是它还是免费的。串口或者SSH等协议通信时候,终端平台是可以进行复制粘贴的,这实在是泰酷辣!!!!

作者目前基本 Linux 系统的调试,树莓派4Bjeston nano等系列高级板子都是使用它作为终端控制和调试的,体验感真的是非常棒的!!!相比于收费的 SecureCRT ,它真的是宝藏软件!

九、Vofa+

VOFA+ 是一款直观、灵活、强大的插件驱动高自由度的上位机,在与电气打交道的领域里,如自动化、嵌入式、物联网、机器人等,都能看到 VOFA+ 的身影。VOFA+ 的名字来源于:Volt/伏特、Ohm/欧姆、Fala/法拉、Ampere/安培,是电气领域的基础单位,与他们的发明者——4位电子物理学领域的科学巨人,分别同名。他们的首字母共同构成了 VOFA+ 的名字。

Vofa+ 简单来说就是一款支持数字动图化的上位机,可以用于直观了解实时的数据变化。它也是免费的,同时丰富的插件也将助力嵌入式工程师实际调试需求!

VOFA+推荐学习博客:http://t.csdn.cn/Qyma8

十、Arduino IDE

Arduino IDE 是一款为 Arduino 板提供支持的集成开发环境(IDE)。它是一个简单易用的工具,可以帮助开发人员编写、编辑、上传和调试基于Arduino的交互式电子产品。如今,Arduino IDE 已经完全适配 ESP8266/32 的开发需求,IDE 提供了丰富的使用案例与 arduino 的库函数!

部分工程师可能认为 ESP 系列开发板属于纯玩具,亦或是顶多搞搞物联网,其实非也!根据博主与 MIT 、NJUST 等众多国内外高校同仁了解到:目前,很多高校都将传统的 STM32 教学改为了 ESP32 教学!同时,乐鑫公司在轻量化边缘计算方面甚至优秀!!!时代在奔流不息,相信乐鑫的ESP32系列以后大放异彩!

十一、Logic

Logic 是一种数字逻辑电路的建模和分析工具,它可以帮助用户设计和验证各种数字电路,包括组合逻辑电路、时序逻辑电路和状态机等。

逻辑分析仪是嵌入式工程非常常见的检测工具,逻辑分析仪有很多。但是,Logic 这款颜值和功能都非常耐打!!!奈何价格太贵,不过幸好存在神秘的东方力量!!!

十二、uniapp

uniapp 是一个基于 Vue.js 开发跨平台前端应用的框架,允许开发者使用一套代码,发布到iOS、Android、Web(响应式)等多个平台。它支持各种小程序、快应用等多个平台,使开发者能够更灵活地应对不同的应用场景。

uniapp的优势在于:拥有自己的社区,组件丰富,开发难度低。使得非专职 APP 开发人员可以快速上手开发属于自己的 APP 使用!

uniapp官网:uni-app快速上手 | uni-app官网 (dcloud.net.cn)

十三、Beyond Compare

Beyond Compare 是一个综合的比较工具,可以用于比较文本、文件夹、文件等,帮助用户快速、准确地找到差异和相似之处。它支持多种比较方式,包括文本比较、文件夹比较、文件比较等,可以用于管理原始档、保持资料夹同步、比对程式的输出结果、以及检查所烧入光碟备份的精确度。

Linux 驱动工程师在学习新的开发板驱动时候,往往就需要使用 Beyond Compare 进行老旧驱动代码的对比。这样,可以快速发现改动了那些地方,而这些地方则是日后开发需要重点关注的!

Beyond Compare 官网:下载 | Beyond Compare 中文官方网站 (beyondcomparepro.com)

十四、Git

Git 是一个分布式版本控制系统,用于跟踪和管理项目的变更。它是由 Linus Torvalds 于2005年发起并开发的,现在已成为开源项目并被广泛使用。使用 Git,开发者可以在本地存储项目的版本历史记录,并将其与远程仓库进行同步,以便与其他团队成员共享和协作。它还提供了许多命令和工具,如 git initgit addgit commitgit push和 git pull等,使得开发者可以轻松地管理他们的代码库。

总之,Git是一个强大的工具,可以帮助开发者更有效地管理和协作,同时提供了更好的灵活性和可扩展性。 

十五、Tracealyzer

Tracealyzer 是一个用于实时跟踪和分析嵌入式系统的工具。它是由 MathWorks 公司开发的,旨在帮助开发人员更好地了解和优化他们的嵌入式系统性能。Tracealyzer 通过实时跟踪系统的运行时行为和事件,提供了对嵌入式系统的深入分析。它可以帮助开发人员识别性能瓶颈、调试问题和优化系统性能。

Tracealyzer的主要特点包括:

  1. 实时跟踪:Tracealyzer可以实时跟踪系统的运行时行为,包括任务执行、中断、定时器和事件等。
  2. 性能分析:Tracealyzer可以分析系统的性能指标,如响应时间、延迟和吞吐量等。它可以帮助开发人员识别性能瓶颈和优化机会。
  3. 调试和故障排除:Tracealyzer可以捕获系统中的错误和异常,并提供详细的信息和堆栈跟踪,帮助开发人员调试和解决故障。
  4. 可视化报告:Tracealyzer生成详细的可视化报告,包括任务和事件的时间线、性能指标图表和堆栈跟踪等。这些报告可以帮助开发人员更好地理解系统行为并制定优化策略。
  5. 跨平台支持:Tracealyzer支持多种嵌入式平台,包括基于Windows、Linux和实时操作系统的嵌入式设备。

十六、PyCharm

PyCharm 是一种集成开发环境(IDE),专门用于开发 Python 应用程序。它是一个功能强大的工具,提供了许多功能和特性,以帮助开发者提高效率和创建高质量的 Python 代码。

如今大火的人工智能 AI 技术,譬如:目标检测,自然语言识别等大都需要进行 Python 神经网络的训练。这往往需要借助 PythonIDEPyCharm 是如今非常主流的人工智能开发平台!嵌入式 AI 工程师往往需要在 PyCharm 进行网络模型的训练,之后再进行部署 AI 板子!

十七、Matlab

Matlab 是一种用于数学计算和工程应用的编程语言和交互式环境。它由 MathWorks 公司开发,是一种广泛使用的科学计算语言和工具,用于各种领域,如科学、工程、金融等。可能大部分工程师认为 Matlab 是科研工具,只能仿真模拟!其实,我们可以通过 matlab 的 .m 语言程序转成 C 语言从而在 MCU 中运行一些高级控制算法!

包括图像的滤波算法,也可以在 Matlab 中做预演,之后再编写对应的 C 语言进行移植实现!

Matlab 官网:MATLAB - 技术计算语言 产品信息 (mathworks.cn)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

紧跟国家“新能源+”模式!涂鸦智慧能源方案助力夏季用电节能提效

“今天的你是几分熟?” 今年夏天,高温来得比往年更早,五六月份就提前开启了滚滚热浪模式,京津冀和山东等地最高气温也一度突破了历史极值。在提前到来的高温“烤”验下,全社会供电能力面临着极大挑战。 中国电力网预…

完整的电商平台后端API开发总结

对于开发一个Web项目来说,无论是电商还是其他品类的项目,注册与登录模块都是必不可少的;注册登录功能也是我们在日常生活中最长接触的,对于这个业务场景的需求与逻辑大概是没有什么需要详细介绍的,市面上常见的邮箱注册…

PSP - Jackhmmer 搜索 EMBL 序列数据库的相似序列

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131817060 EMBL (European Molecular Biology Laboratory,欧洲分子生物实验室):EMBL 数据库是一个由欧洲生物信息学研究所…

第六届字节跳动青训营报录比(宣传大使)

统计 前端基础卷:105 前端基础班:120-22(笔试不过基础班,宣传大使奖励进入)98 前端进阶卷:77 前端进阶班:18-216 后端基础卷:151 后端基础班:220 后端进阶卷:133 后端进…

LeetCode·每日一题·1851. 包含每个查询的最小区间·优先队列(小顶堆)

题目 示例 思路 离线查询: 输入的结果数组queries[]是无序的。如果我们按照输入的queries[]本身的顺序逐个查看,时间复杂度会比较高。 于是,我们将queries[]数组按照数值大小,由小到大逐个查询,这种方法称之为离线查询…

《微服务架构设计模式》第十二章 部署微服务应用

内容总结自《微服务架构设计模式》 部署微服务应用 一、部署模式分类二、编程语言特定的发布包格式1、概述2、利弊 三、将服务部署为虚拟机1、概览2、利弊 四、将服务部署为容器1、概述2、利弊3、K8S部署 五、Serverless部署1、概述2、利弊3、示例 六、总结 一、部署模式分类 …

视频融合平台EasyCVR级联后上级平台播放失败的问题排查与优化

EasyCVR视频融合平台基于云边端智能协同架构,具有强大的数据接入、处理及分发能力,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制等视频能力与服务,可支持多协议、多类型的海量设备接入与分发。 …

7、PHP语法要点2

1、or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。&&、||的优先级在赋值运算符之前,or和and在赋值运算符之后。 2、字符串变量及数组可以在echo输出时双引号内、双引号外均可引用&#xff…

Meta提出全新参数高效微调方案,仅需一个RNN,Transformer模型GPU使用量减少84%!

近来,随着ChatGPT和GPT-4模型的不断发展,国内外互联网大厂纷纷推出了自家的大语言模型,例如谷歌的PaLM系列,MetaAI的LLaMA系列,还有国内公司和高校推出的一些大模型,例如百度的文心一言,清华的C…

迅镭激光赋能工程机械,客户连续复购激光加工设备达双赢!

工程机械是装备制造业的重要组成部分,当前,我国已成为门类齐全、规模庞大、基础坚实、竞争力强的工程机械设备制造大国。 随着工程机械产业正在全面向智能化、绿色化转型,激光加工成为推动工程机械产业转型升级的重要工具,越来越多…

CS162 11-12 调度与死锁

调度 overview 1.FCFS 可以利用好cache缓存,减少上下文切换。 2.很直观,贪心,可以减少平均的响应时间 3 4. 5.等待调度的时间是平均的 6.优先级翻转,和优先级捐赠 解决 cfs中的调度 死锁 四个必要不充分条件 银行家算法&…

《深度学习推荐系统》笔记

目录 一、推荐系统是什么1.作用和意义2.推荐系统的架构2.1 逻辑架构2.2 技术架构 二、传统的推荐系统方法1. 协同过滤算法1.1 userCF&&ItemCF1.3 矩阵分解算法 2. 逻辑回归算法3. 因子分解机3.1 POLY2模型3.2 FM模型3.3 FFM模型3.4 小结 4. 组合模型4.1 GBDTLR组合模型…

数学建模-多元线性回归分析

回归分析介绍和分类 数据分类及数据的来源 线性回归 四种模型的解释、虚拟变量的设置以及交互项的解释 3个定量,7个定类插入,表格,包含标题,标题换黑色 可以右键,复制表格,excel中设置三线表 ,gen(A)是参数…

Linux 部署Vue+Spring Boot项目

部署Vue Spring Boot项目 安装redis wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar -zxvf redis-4.0.8.tar.gz yum install gcc-c make make install如果出现下面的问题: yum install tcl make testredis-server myconifg/redis.conf输入客户端…

WordPress作为可扩展的企业级解决方案

网络商业世界就像一片汪洋大海,大型企业是大海中最大的鱼。然而,只因为你比其他人都大,并不意味着你不能逆流而上。相反,企业业务面临的挑战更大,对网站的技术要求更高。 多年来,大型公司通常依赖最昂贵的…

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面 MobaXterm软件介绍串口终端运行命令MobaXterm访问开发板 MobaXterm软件介绍 MobaXterm是一款增强型终端软件,对于Windows平台上的程序员、网络管理员和开发者是一款极其优秀的工…

用 pesq 给 torchaudio 读取的音频数据打分

用torchaudio读取的音频文件,在输入pesq之前需要进行格式处理与转换。 import torchaudio from pesq import pesq# 读取音频文件 audio_clean, src torchaudio.load(./audio/NOIZEUS/clean/sp01.wav) audio_0dB, sr0 torchaudio.load(./audio/NOIZEUS/bable/0dB/…

基于FPGA的按键消抖

文章目录 基于FPGA的按键消抖一、按键消抖原理二、按键消抖代码三、仿真代码编写四:总结 基于FPGA的按键消抖 一、按键消抖原理 按键抖动:按键抖动通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性…

wampserver的mysql8.0版本在my.ini文件中加入skip_grant_tables无效等一系列问题。

背景:安装了新的wampserver之后,php版本mysql8.0.31,想打开phpadmin可视化管理页面,后来忘记密码了,报错:ERROR 1045 (28000): Access denied for user rootlocalhost (using password: No),只能…

Ubuntu 更改内核启动顺序

ubuntu服务器系统中用run包安装了某卡的驱动,后来又安装了docker,重启后,驱动失效。 经分析 安装docker时,又把新的linux内核安装上了。驱动是安装在旧内核上。 然会重新安装驱动,失败,确认是因为驱动只支…