当前位置:首页 > 公众号精选 > 大鱼机器人
[导读]嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有μcos,vxworks,linux,android等。当然,对于嵌入式或单片机工程师的利器就是C语言、C++或汇编语言。那么有哪些好工具可以让工作事半功倍呢? 据著名单片机工程师鱼鹰Osprey介绍,首先我学习


嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有μ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、Vscode


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


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


VS vode特点:开源,免费,自定义配置,集成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】百度百科相关词条



-END-

免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

猜你喜欢

嵌入式工程师,怎么不被历史洪流冲走?

年轻人,拼命奋斗还是保命要紧?

都说嵌入式软硬结合,你知道该怎么做吗?

 最 后  
 

若觉得文章不错,转发分享,也是我们继续更新的动力。
5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等
在公众号内回复「 更多资源 」,即可免费获取,期待你的关注~
长按识别图中二维码关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭