嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有μ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集成非常方便、简单。
远程连接终极工具,提供了主流的远程工具(SSH, X11, RDP, VNC, FTP, MOSH, ...)与Unix commands (bash, ls, cat, sed, grep, awk, rsync, ...)。
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议。小巧好用,从没换过。
18、文件夹管理器total commander
Total Commander 是一款应用于 Windows 平台的文件管理器 ,它包含两个并排的窗口,这种设计可以让用户方便地对不同位置的“文件或文件夹”进行操作,例如复制、移动、删除、比较等,相对 Windows 资源管理器而言方便很多,极大地提高了文件操作的效率,被广大软件爱好者亲切地简称为:TC 。
它拥有文件快速预览、快速搜索、多标签、文件比较、批量重命名、FTP 客户端等诸多实用的功能,并可通过大量的插件进行个性化配置。
Wireshark(前称Ethereal)是一个网络封包分析软件。
Everything速度最快的文件搜索软件,可以瞬间搜索到你需要的文件。
Notepad++是一套为自由软件的纯文本编辑器,支持众多程序语言,比如C++、C#、Java等主流程序语言;支持HTML、XML、ASP,Perl、Python、JavaScript等网页/脚本语言。
1.兆易创新推出RISC-V架构的GD32VF103,这是MCU界的“小欢喜”
2.美国“帮”我们统计了114家华为公司!
3.使用STM32通用Bootloader,OTA更加Easy了!
4.接手别人的代码,你愁吗?
5.宁愿写两遍代码,也不用 C++跨iOS、Android平台开发?
6.50 年来最具影响力的十大编程语言!
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。