前言:常言道:工欲善其事,必先利其器。作为一名合格的嵌入式工程师,日常可能需要接触和处理各种奇奇怪怪的问题,这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受,为大家推荐几款嵌入式开发常用的软件。希望本篇博客可以让大家学会使用一些新的工具,当然如果读者朋友有其他的好软件推荐也可以在评论区留言!
推荐软件图:
考虑到作者实际目前偏嵌入式软件工程,所以本篇博客仅推荐嵌入式软件工程师的好工具!
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++ 是 Windows 环境下的一款免费开源的文本编辑器。它功能强大,支持语法高亮显示、多重窗口同步编辑、多国语言和多种编程语言,并且可以加载丰富的插件。Notepad++ 还具有完整的中文接口和 UTF8 技术,适合编写计算机程序代码和制作纯文字说明文件。
下载地址:Download Notepad++ - free - latest version (softonic.com)
用户可以通过安装插件来拓展 Notepad++ 的功能,例如代码折叠、代码提示、文档格式化和文档预览等。此外,Notepad++ 还支持自定义宏,可以帮助用户快速执行重复任务或批量修改文本。
总之,Notepad++ 是一款功能丰富、易于使用且具有良好扩展性的文本编辑器,适用于编写各种类型的文本和代码。
不同于 VSCode,Visual Studio 是一个 IDE,我们可以装一个以备不时之需,比如验证C程序或是进行C#程序开发等。一些与嵌入式相关的模拟器也是基于 Visual Studio,作者平时的CUDA代码亦或是科研工作上的C++代码都会使用 Visual Studio 进行验证模拟工作!
除了标准功能外,Visual Studio 还提供了丰富的扩展和插件,以满足不同领域的需求。例如,用户可以通过安装 C++ 扩展来支持 C++ 编程,或者通过安装 Entity Framework 扩展来支持数据访问。
Keil uVision 是一个由 Keil 公司开发的集成开发环境(IDE),用于嵌入式系统的开发和调试。Keil uVision 基于C语言和其他编程语言,支持各种微控制器和处理器,包括STM32、AVR、PIC等。
我相信广大的嵌入式工程师没有一个不认识上述界面吧,我们接触最多的 STM32 开发通常用得就是该 IDE 。当然,大家一直诟病的是 Keil uVision 的 UI 界面太丑了!MDK6 其实也即将面世,根据作者的了解貌似 ui 设计依旧没有太大的改善,MDK6 貌似更像一个集合体!
Keil uVision 的主要功能包括代码编辑、编译、调试和仿真等。其中,代码编辑器支持语法高亮、代码折叠、自动补全等功能,可以帮助开发人员快速编写代码。编译功能可以将源代码编译成可执行文件或库,以便在目标设备上运行。调试功能可以帮助开发人员调试和测试代码,包括单步执行、断点设置、变量监视等功能。仿真功能可以模拟目标设备的运行环境,以便测试代码的正确性和可靠性。
STM32CubeMX 是一个由 ST 意法半导体公司开发的图形化工具,用于配置和初始化 STM32 微控制器,并生成 C 代码。它提供了一个直观的可视化界面,可以帮助开发人员快速配置和设置微控制器的各种外设、引脚和时钟。
STM32CubeMX 可以直接生成 HAL 库的 STM32 配置程序,极大地方便了个人开发者对于 STM32 系列开发板的使用。熟悉作者本人的应该知道,作者很多项目都是以 HAL 库作为教学的。HAL 库的学习好处是很多的,首先意法半导体已经停止对很多开发板的标准库的维护。其次,FreeRTOS 等 RTOS 对 HAL 库直接提供了接口 API 函数,方便开发移植!
作者有话:
HAL 库是未来低代码量,高封装的趋势。但是,HAL 库本身也存在很多缺点,代码效率低,代码冗余等!而且,CubeMX 主要是针对
VMware Workstation 是一款功能强大的虚拟机软件,它可以在一台计算机上模拟多个操作系统和应用程序的环境。
嵌入式工程往往需要进行交叉编译的工作,即在 x86 的架构上编译出 ARM 架构的代码。这种操作往往需要我们在 Linux 系统下进行!考虑到大家办公需求,大部分工程师还是 window 作为日常操作系统的。所以,VMware Workstation 极大的方便了我们日常生活中的开发!当然,ROS 等使用也都是需要依赖 VMware Workstation 下的 Ubuntu 的。
Qt Creator 是一个跨平台的集成开发环境(IDE),专门用于开发基于 Qt 框架的 C++ 应用程序。它是由 Qt Company 提供的免费开源工具,适用于 Windows、Linux 和 macOS 等操作系统。
QT 可以算是嵌入式工程师中比较庞大的分支,属于嵌入式应用层的开发。与 QT 类似的 ui 开发平台还有很多!但是,QT可以说是目前比较常见且成熟的!C++ 功底还行的读者朋友可以往这方面发展发展,薪资待遇都是很不错的!
当然,QT 也可以用来进行简单的 C++ 入门学习仿真使用!
MobaXterm 我愿称为最强串口调试助手!!!
MobaXterm 是一款功能强大的远程终端模拟器,适用于 Windows 和 Linux 操作系统。它提供了一个集成的远程终端和 X 服务器,可以连接各种类型的远程主机,包括SSH、FTP、Telnet等。关键是它还是免费的。串口或者SSH等协议通信时候,终端平台是可以进行复制粘贴的,这实在是泰酷辣!!!!
作者目前基本 Linux 系统的调试,树莓派4B,jeston nano等系列高级板子都是使用它作为终端控制和调试的,体验感真的是非常棒的!!!相比于收费的 SecureCRT ,它真的是宝藏软件!
VOFA+ 是一款直观、灵活、强大的插件驱动高自由度的上位机,在与电气打交道的领域里,如自动化、嵌入式、物联网、机器人等,都能看到 VOFA+ 的身影。VOFA+ 的名字来源于:Volt/伏特、Ohm/欧姆、Fala/法拉、Ampere/安培,是电气领域的基础单位,与他们的发明者——4位电子物理学领域的科学巨人,分别同名。他们的首字母共同构成了 VOFA+ 的名字。
Vofa+ 简单来说就是一款支持数字动图化的上位机,可以用于直观了解实时的数据变化。它也是免费的,同时丰富的插件也将助力嵌入式工程师实际调试需求!
VOFA+推荐学习博客:http://t.csdn.cn/Qyma8
Arduino IDE 是一款为 Arduino 板提供支持的集成开发环境(IDE)。它是一个简单易用的工具,可以帮助开发人员编写、编辑、上传和调试基于Arduino的交互式电子产品。如今,Arduino IDE 已经完全适配 ESP8266/32 的开发需求,IDE 提供了丰富的使用案例与 arduino 的库函数!
部分工程师可能认为 ESP 系列开发板属于纯玩具,亦或是顶多搞搞物联网,其实非也!根据博主与 MIT 、NJUST 等众多国内外高校同仁了解到:目前,很多高校都将传统的 STM32 教学改为了 ESP32 教学!同时,乐鑫公司在轻量化边缘计算方面甚至优秀!!!时代在奔流不息,相信乐鑫的ESP32系列以后大放异彩!
Logic 是一种数字逻辑电路的建模和分析工具,它可以帮助用户设计和验证各种数字电路,包括组合逻辑电路、时序逻辑电路和状态机等。
逻辑分析仪是嵌入式工程非常常见的检测工具,逻辑分析仪有很多。但是,Logic 这款颜值和功能都非常耐打!!!奈何价格太贵,不过幸好存在神秘的东方力量!!!
uniapp 是一个基于 Vue.js 开发跨平台前端应用的框架,允许开发者使用一套代码,发布到iOS、Android、Web(响应式)等多个平台。它支持各种小程序、快应用等多个平台,使开发者能够更灵活地应对不同的应用场景。
uniapp的优势在于:拥有自己的社区,组件丰富,开发难度低。使得非专职 APP 开发人员可以快速上手开发属于自己的 APP 使用!
uniapp官网:uni-app快速上手 | uni-app官网 (dcloud.net.cn)
Beyond Compare 是一个综合的比较工具,可以用于比较文本、文件夹、文件等,帮助用户快速、准确地找到差异和相似之处。它支持多种比较方式,包括文本比较、文件夹比较、文件比较等,可以用于管理原始档、保持资料夹同步、比对程式的输出结果、以及检查所烧入光碟备份的精确度。
Linux 驱动工程师在学习新的开发板驱动时候,往往就需要使用 Beyond Compare 进行老旧驱动代码的对比。这样,可以快速发现改动了那些地方,而这些地方则是日后开发需要重点关注的!
Beyond Compare 官网:下载 | Beyond Compare 中文官方网站 (beyondcomparepro.com)
Git 是一个分布式版本控制系统,用于跟踪和管理项目的变更。它是由 Linus Torvalds 于2005年发起并开发的,现在已成为开源项目并被广泛使用。使用 Git,开发者可以在本地存储项目的版本历史记录,并将其与远程仓库进行同步,以便与其他团队成员共享和协作。它还提供了许多命令和工具,如 git init
、git add
、git commit
、git push
和 git pull
等,使得开发者可以轻松地管理他们的代码库。
总之,Git是一个强大的工具,可以帮助开发者更有效地管理和协作,同时提供了更好的灵活性和可扩展性。
Tracealyzer 是一个用于实时跟踪和分析嵌入式系统的工具。它是由 MathWorks 公司开发的,旨在帮助开发人员更好地了解和优化他们的嵌入式系统性能。Tracealyzer 通过实时跟踪系统的运行时行为和事件,提供了对嵌入式系统的深入分析。它可以帮助开发人员识别性能瓶颈、调试问题和优化系统性能。
Tracealyzer的主要特点包括:
- 实时跟踪:Tracealyzer可以实时跟踪系统的运行时行为,包括任务执行、中断、定时器和事件等。
- 性能分析:Tracealyzer可以分析系统的性能指标,如响应时间、延迟和吞吐量等。它可以帮助开发人员识别性能瓶颈和优化机会。
- 调试和故障排除:Tracealyzer可以捕获系统中的错误和异常,并提供详细的信息和堆栈跟踪,帮助开发人员调试和解决故障。
- 可视化报告:Tracealyzer生成详细的可视化报告,包括任务和事件的时间线、性能指标图表和堆栈跟踪等。这些报告可以帮助开发人员更好地理解系统行为并制定优化策略。
- 跨平台支持:Tracealyzer支持多种嵌入式平台,包括基于Windows、Linux和实时操作系统的嵌入式设备。
PyCharm 是一种集成开发环境(IDE),专门用于开发 Python 应用程序。它是一个功能强大的工具,提供了许多功能和特性,以帮助开发者提高效率和创建高质量的 Python 代码。
如今大火的人工智能 AI 技术,譬如:目标检测,自然语言识别等大都需要进行 Python 神经网络的训练。这往往需要借助 Python 的 IDE ,PyCharm 是如今非常主流的人工智能开发平台!嵌入式 AI 工程师往往需要在 PyCharm 进行网络模型的训练,之后再进行部署 AI 板子!
Matlab 是一种用于数学计算和工程应用的编程语言和交互式环境。它由 MathWorks 公司开发,是一种广泛使用的科学计算语言和工具,用于各种领域,如科学、工程、金融等。可能大部分工程师认为 Matlab 是科研工具,只能仿真模拟!其实,我们可以通过 matlab 的 .m 语言程序转成 C 语言从而在 MCU 中运行一些高级控制算法!
包括图像的滤波算法,也可以在 Matlab 中做预演,之后再编写对应的 C 语言进行移植实现!
Matlab 官网:MATLAB - 技术计算语言 产品信息 (mathworks.cn)