嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有μcos,vxworks,linux,android 等。当然,对于嵌入式或单片机工程师的利器就是 C 语言、C++或汇编语言。那么有哪些好工具可以让工作事半功倍呢?

 

 

据著名单片机工程师鱼鹰 Osprey 介绍,首先我学习的是 Qt,而要学习 Qt 就必须学 C++,而学了 Qt 之后发现新公司采用 linux 开发单片机,涉及到 Makefile,还用了 GitLab 管理代码,所以又简单学习了 GitLab 的操作,然后发现代码管理还要使用 Git,所以花了几天时间学习 Git 的使用……

 

很多单片机开发的道友都是手握 KEIL 行走天下的,事实上在跳槽之前我就是如此,一个 KEIL 搞定一切,编辑、编译、下载、调试,全靠 KEIL 软件,也是我研究 KEIL 这么深的原因,因为只有你熟悉了工具,才能做到事半功倍。

 

接下来就给大家介绍几款嵌入式开发工具。下面这些工具,我认为你都应该花点时间学习一下,这是非常有用的工具,非常方便。

 

1、Source Insight

Source Insight 是一个程序编辑器和代码浏览器,代码编辑器的经典之作。

 

Source Insight 是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对 C/C++, C#和 Java 等程序的分析。

 

Source Insight 能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。

 

Source Insight 不仅仅是一个强大的程序编辑器,它还能显示 reference trees,class inheritance diagrams 和 call trees。Source Insight 提供了最快速的对源代码的导航和任何程序编辑器的源信息。Source Insight 提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同,Source Insight 能在你编辑的同时分析你的源代码,为你提供实用的信息并立即进行分析。

 

鱼鹰对这个工具的评价是:我们知道 KEIL 查看函数或者符合定义时,要么右键查找定义,要么熟练的使用快捷键 F12 进行跳转,但无一例外的就是都需要额外的操作,但 SourceInsight 只要你把光标指向函数名,就会自动有一个小窗口显示函数体,看似只比 KEIL 少了一步,也只是多了一个窗口而已,但就是这点区别,就足以让鱼鹰安装了(事实上它也可以在设置后编译源码的,这个暂时没去研究过,不多说)。在看别人代码的时候,跳来跳去的正常不过了,而 KEIL 每次跳转都会跳转到新窗口,想回来,只能再切换窗口,如果跳转次数不多的话,那没什么,但是查看不熟悉的代码,你认为你不需要频繁跳转吗?所以鱼鹰认为,这个神器必须安装,特别是查看 linux 内核这种大型源码时,更是如此。而且它安装包也很小,不用太关心内存问题,你,值得拥有。

 

 

2、UltraEdit

UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C++ 及 VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。

 

UltraEdit 是 Windows 旗下一款流行的老牌文本 /HEX 编辑器(非开源)。UltraEdit 正被移植到 Linux 平台。该移植名为 UEX,意即 UltraEdit forLinux。UEX 具有原生的 Linux 外观,其界面、配置、热键等与 Windows 版并无二致。UltraEdit 是一个 49.95 美元的共享软件,提供了友好界面的编程编辑器,支持语法高亮,代码折叠和宏,以及一大堆其他的功能,内置了对于 HTML、PHP 和 JavaScript 等语法的支持。UltraEdit 代码折叠支持在所有 32 位 Windows 平台上进行 64 位文件处理(标准),Unicode 支持基于磁盘的文本编辑和大文件处理 - 支持超过 4GB 的文件,即使是数兆字节的文件也只占用极少的内存。

 

 

 

 

3、Git

Git(读音为 /gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

 

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

 

Git 是目前世界上最先进的分布式版本控制系统(没有之一)。

 

Git 有什么特点?简单来说就是:高端大气上档次!

 

鱼鹰对这个工具的评价是这样的:这个工具用于软件版本控制的,事实上鱼鹰在前五年开发使用的版本工具就是复制、粘贴,你没有看错,鱼鹰工作的那一年也是采用这种方式进行版本控制的。我相信公众号的很多道友现在还都是采用这种方式吧。这种方式确实简单,不用学习什么命令,也不用知道怎么使用工具,因为复制、粘贴、重命名谁不会啊,学习成本很低。

 

但是当你不停的更新、不停的修改代码的时候,你就会发现,这个复制粘贴的方式效率很低,也很难把控:你会发现你的文件夹变得越来越多,也越来越不知道每一个文件和其他文件有什么不同了,时间久了,你根本不知道改动到底在哪。

 

但是 Git 不一样,你能看到文件只有当前使用的一份,历史改动全部被 Git 给隐藏了,所以你会看到你的源码文件明明只有几 K,但你回到上级目录查看这个文件属性时,你会发现可能有几百 M 内容,那么多出来的文件是什么?就是你以前的历史文件了,都隐藏在 .git 文件夹中。

 

而你要查看这些历史只要几条命令就行,也很容易就能回到你需要的版本中,就如乘坐时光机,轻松来往于过去与未来。

 

还有它可以很方便的查看版本的差异,让你再也不用使用专门的工具查看各个文件的不同了。

 

而且 Git 是采用本地管理的,不需要网络,非常方便。

 

学习 Git 基本使用方法只需要花个一两天时间学习就够了,但是却能免除你今后开发生涯的复制、粘贴操作了,鱼鹰觉得这是非常值得做的一件事。

 

Git 教程:https://www.liaoxuefeng.com/wiki/896043488029600

 

 

据某工程师分享,git 版本管理的客户端自己使用比较多的是 msysGit。msysGit 提供 gui 与 bash 两种视图:

 

 

 

4、TortoiseSVN

ortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。

 

开源的可视化的集中式代码版本管理。相关于 git 的优点是(1)提交号是一个累加的数值,便于识别;(2)本地硬盘空间占用少。

 

下载地址:https://tortoisesvn.net/downloads.html

使用教程:https://www.runoob.com/svn/tortoisesvn-intro.html

 

 

5、GitHub

GitHub 的大名无人不知无人不晓,从 996、微软开源、锤子开源到小米开源都有它的身影。

 

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 GitHub。

 

鱼鹰表示,GitHub 是一个网站,不能算工具,这个网站应该都听说过,其实这个网站我还不怎么会使用,目前只是配合 Git 上传代码到上面而已,就不多说了。

 

那么为什么我要用它呢,因为很多时候,你的源码可能要传输到别的平台,有了它比较方便,比如说,window 平台下开发的代码,上传到 GitHub 后,Ubuntu、树莓派等平台下都可以下载、上传,方便代码的同步。所以如果你不想花时间系统学习的话,把它当成一个网盘使用也是不错的呦。

 

 

6、Qtcreator

Qt Creator 是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。

 

鱼鹰表示,这个软件和 Qt 有啥关系我也不清楚,咱也不敢说,咱也不敢问,只是下了一个安装包安装在 Ubuntu 下学习 C++和 Qt 而已,事实上它也可以编译单片机代码(前提是有 Makefile 和交叉编译器)。

 

那么为啥要聊它呢,因为 Qt 在嵌入式用途广泛,如果说你写的上位机既想在 Windows 运行,也想在 linux 下运行,那么 Qt 是不错的选择,因为这个号称是一次编写,到处编译的,所以优势还是很大的,而且采用的是 C++语言,如果 C 语言学习的好,C++入门非常快的。

 

点击查看源网页

 

7、Vs code

在开发中,有一个非常好用的工具,Visual Studio Code,简称 VS code。

 

都不用我安利 VS code,大家就会乖乖的去用,无数个大言不惭的攻城狮,都被 VS code 比德芙还丝滑的强大功能所折服。

 

VS code 特点:开源,免费,自定义配置,集成 git,智能提示强大,支持各种文件格式(html/jade/css/less/sass/xml),调试功能强大,各种方便的快捷键,强大的插件扩展。。。。

 

鱼鹰表示,这个听说是神器,具体多神我也不清楚,听说可以替代 KEIL 了,各位道友有兴趣的可以去研究一下,后期有时间了我也去试试,感受一下它的神威。

 

点击查看源网页

 

8、Beyond Compare

Beyond Compare 是一套由 Scooter Software 推出的软件,主要用途是对比两个文件夹或者文件,并将差异以颜色标示。

 

Beyond Compare 支持 11 种文件类型对比及功能,包括文件夹比较、文件夹合并、文件夹同步、文本比较、文本合并、表格比较、16 进制比较、MP3 比较、图片比较、注册表比较和版本比较,比较类型非常多。

 

 

9、HHD Software Device Monitoring Studio

HHD Software Device Monitoring Studio 是一款功能强大的设备监控软件,包括 USB 监控(USB Monitor)、串口监控(Serial Monitor)和网络监控(Network Monitor)三大模块功能。HHD Software Device Monitoring Studio 是在驱动层直接抓取数据包,反馈的数据包之间的时间间隔很准确。是开发者必备工具!

 

 

10、山外多功能调试助手

山外多功能调试助手是一款集成串口调试助手、摄像头调试、线性 CCD 调试、虚拟示波器、GSM 调试助手、GPS 定位系统、网络调试助手(TCP 服务器、TCP 客户端、UDP)等多种调试功能于一体的多功能助手。有了他,我们可以轻松应对各种嵌入式开发。

 

 

11、串口调试工具

比较好用的串口调试工具有 SSCOM,MyDockligh,AccessPort;如果是调试 AT 的话,QCOM 还是最好用的一款串口工具。

 

当然,之前嵌入式 ARM 也曾经报道过一款非常好用的串口助手“伏特加”——《为了爽快地调试硬件,我跟串口调试助手杠上了》

 

12、Wireshark

Wireshark(前称 Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

 

Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。

 

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。

 

Ethereal 的出现改变了这一切。在 GNUGPL 通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal 是目前全世界最广泛的网络封包分析软件之一。

 

强大的网络协议数据报文分析工具,也是深入学习各种网络协议必不可少的利器。

 

 

13、Socket 工具

推荐 IPoP 和 TCPUDPDbg。

 

 

 

14、SSHSecureShellClient

强大远程安全远程登录工具。如果使用虚拟器的方式开发 Android 等 Linux 系统,建议使用该工

具,避免在图形界面操作 Linux 系统,减少 PC 的负载。XShell 也有不少工程师在用,本人没有用过。

 

 

15、MQTT 调试工具

Sever 端推荐 mosquitto,客户端推荐 paho。

 

Mosquitto 是用 C 语言实现了 MQTT(Message Queueing Telemetry
Transport)协议的 Broker,EMQ 君在本文对 MQTT 协议不做过多的赘述,关于 MQTT 协议的介绍读者可以阅读 EMQ 的 MQTT 协议介绍。本文重点介绍 mosquito 客户端的使用。

 

 

Eclipse Paho:是 Eclipse 提供的一个访问 MQTT 服务器的一种开源客户端库。

 

Eclipse 目前提供十种不同语言平台的客户端类库,
对于 Java 平台而言和 MQTT 服务器交互的开源框架还有很多, 例如:
Eclipse Paho Java、 Xenqtt、 MeQanTT、 Fusesource mqtt -client、 moquette 等等 ...


但是, 根据 GIthub 上使用次数来讲 Eclipse Paho 无疑是主流, 就个人使用而已, Eclipse Paho 集成非常方便、简单。

 

点击查看源网页

 

16、MobaXterm

远程连接终极工具,提供了主流的远程工具(SSH, X11, RDP, VNC, FTP, MOSH, ...)与 Unix commands (bash, ls, cat, sed, grep, awk, rsync, ...)。

 

 

17、SecureCRT

SecureCRT 是一款支持 SSH(SSH1 和 SSH2)的终端仿真程序,同时支持 Telnet 和 rlogin 协议。小巧好用,从没换过。

 

 

18、文件夹管理器 total commander

Total Commander 是一款应用于 Windows 平台的文件管理器 ,它包含两个并排的窗口,这种设计可以让用户方便地对不同位置的“文件或文件夹”进行操作,例如复制、移动、删除、比较等,相对 Windows 资源管理器而言方便很多,极大地提高了文件操作的效率,被广大软件爱好者亲切地简称为:TC 。

 

它拥有文件快速预览、快速搜索、多标签、文件比较、批量重命名、FTP 客户端等诸多实用的功能,并可通过大量的插件进行个性化配置。

 

 

19、网络抓包软件 wireshark

Wireshark(前称 Ethereal)是一个网络封包分析软件。

 

 

20、文件搜索 Everything

Everything 速度最快的文件搜索软件,可以瞬间搜索到你需要的文件。

 

 

21、文本编辑器 notepad++

Notepad++是一套为自由软件的纯文本编辑器,支持众多程序语言,比如 C++、C#、Java 等主流程序语言;支持 HTML、XML、ASP,Perl、Python、JavaScript 等网页 / 脚本语言。

 

 

参考资料:

【1】鱼鹰 Osprey  . 《介绍几款好用的工具 | 嵌入式开发必备 》
【2】佚名 . 《嵌入式开发常用工具(windows)》
【3】佚名 . 《介绍几款嵌入式开发工具,或许能用上!》
【4】归云十九少 . 《嵌入式软件开发工具集锦》
【5】百度百科相关词条