盤點嵌入式工程師最常用的工具,或許能用上

嵌入式開發就是指在嵌入式操作系統下進行開發,一般常用的系統有μcos,vxworks,linux,android等。當然,對于嵌入式或單片機工程師的利器就是C語言、C++或匯編語言。那么有哪些好工具可以讓工作事半功倍呢?

Image placeholder
管理員 2021-03-09 01:11

嵌入式開發就是指在嵌入式操作系統下進行開發,一般常用的系統有μ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兩種視圖:



圖片.png


4、TortoiseSVN


ortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理文件和目錄。


開源的可視化的集中式代碼版本管理。相關于git的優點是(1)提交號是一個累加的數值,便于識別;(2)本地硬盤空間占用少。


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

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



圖片.png


5、GitHub


GitHub的大名無人不知無人不曉,從996、微軟開源、錘子開源到小米開源都有它的身影。


GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進行托管,故名GitHub。


魚鷹表示,GitHub是一個網站,不能算工具,這個網站應該都聽說過,其實這個網站我還不怎么會使用,目前只是配合Git上傳代碼到上面而已,就不多說了。


那么為什么我要用它呢,因為很多時候,你的源碼可能要傳輸到別的平臺,有了它比較方便,比如說,window平臺下開發的代碼,上傳到GitHub后,Ubuntu、樹莓派等平臺下都可以下載、上傳,方便代碼的同步。所以如果你不想花時間系統學習的話,把它當成一個網盤使用也是不錯的呦。


圖片.png


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 code特點:開源,免費,自定義配置,集成git,智能提示強大,支持各種文件格式(html/jade/css/less/sass/xml),調試功能強大,各種方便的快捷鍵,強大的插件擴展。。。。


魚鷹表示,這個聽說是神器,具體多神我也不清楚,聽說可以替代KEIL了,各位道友有興趣的可以去研究一下,后期有時間了我也去試試,感受一下它的神威。


圖片.png


8、Beyond Compare


Beyond Compare是一套由Scooter Software推出的軟件,主要用途是對比兩個文件夾或者文件,并將差異以顏色標示。


Beyond Compare支持11種文件類型對比及功能,包括文件夾比較、文件夾合并、文件夾同步、文本比較、文本合并、表格比較、16進制比較、MP3比較、圖片比較、注冊表比較和版本比較,比較類型非常多。

圖片.png

9、HHD Software Device Monitoring Studio


HHD Software Device Monitoring Studio 是一款功能強大的設備監控軟件,包括USB監控(USB Monitor)、串口監控(Serial Monitor)和網絡監控(Network Monitor)三大模塊功能。HHD Software Device Monitoring Studio 是在驅動層直接抓取數據包,反饋的數據包之間的時間間隔很準確。是開發者必備工具!


圖片.png


10、山外多功能調試助手


山外多功能調試助手是一款集成串口調試助手、攝像頭調試、線性CCD調試、虛擬示波器、GSM調試助手、GPS定位系統、網絡調試助手(TCP服務器、TCP客戶端、UDP)等多種調試功能于一體的多功能助手。有了他,我們可以輕松應對各種嵌入式開發。




11、串口調試工具

比較好用的串口調試工具有SSCOM,MyDockligh,AccessPort;如果是調試AT的話,QCOM還是最好用的一款串口工具。


當然,之前嵌入式ARM也曾經報道過一款非常好用的串口助手“伏特加”——《為了爽快地調試硬件,我跟串口調試助手杠上了


12、Wireshark


Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。



Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換。


在過去,網絡封包分析軟件是非常昂貴的,或是專門屬于盈利用的軟件。


Ethereal的出現改變了這一切。在GNUGPL通用許可證的保障范圍底下,使用者可以以免費的代價取得軟件與其源代碼,并擁有針對其源代碼修改及客制化的權利。Ethereal是目前全世界最廣泛的網絡封包分析軟件之一。


強大的網絡協議數據報文分析工具,也是深入學習各種網絡協議必不可少的利器。


圖片.png


13、Socket工具

推薦IPoP和TCPUDPDbg。


圖片.png

圖片.png


14、SSHSecureShellClient

強大遠程安全遠程登錄工具。如果使用虛擬器的方式開發Android等Linux系統,建議使用該工

具,避免在圖形界面操作Linux系統,減少PC的負載。XShell也有不少工程師在用,本人沒有用過。


圖片.png


15、MQTT調試工具

Sever端推薦mosquitto,客戶端推薦paho。


Mosquitto是用C語言實現了MQTT(Message Queueing Telemetry
Transport)協議的Broker,EMQ君在本文對MQTT協議不做過多的贅述,關于 MQTT 協議的介紹讀者可以閱讀EMQ的MQTT協議介紹。本文重點介紹mosquito客戶端的使用。


圖片.png


Eclipse Paho:是Eclipse提供的一個訪問MQTT服務器的一種開源客戶端庫。


Eclipse目前提供十種不同語言平臺的客戶端類庫,
對于Java平臺而言和MQTT服務器交互的開源框架還有很多, 例如:
Eclipse Paho Java、 Xenqtt、 MeQanTT、 Fusesource mqtt -client、 moquette 等等...


但是, 根據GIthub上使用次數來講Eclipse Paho無疑是主流, 就個人使用而已, Eclipse Paho集成非常方便、簡單。


圖片.png


16、MobaXterm


遠程連接終極工具,提供了主流的遠程工具(SSH, X11, RDP, VNC, FTP, MOSH, ...)與Unix commands (bash, ls, cat, sed, grep, awk, rsync, ...)。


圖片.png


17、SecureCRT


SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,同時支持Telnet和rlogin協議。小巧好用,從沒換過。


圖片.png


18、文件夾管理器total commander


Total Commander 是一款應用于 Windows 平臺的文件管理器 ,它包含兩個并排的窗口,這種設計可以讓用戶方便地對不同位置的“文件或文件夾”進行操作,例如復制、移動、刪除、比較等,相對 Windows 資源管理器而言方便很多,極大地提高了文件操作的效率,被廣大軟件愛好者親切地簡稱為:TC 。


它擁有文件快速預覽、快速搜索、多標簽、文件比較、批量重命名、FTP 客戶端等諸多實用的功能,并可通過大量的插件進行個性化配置。




19、網絡抓包軟件wireshark


Wireshark(前稱Ethereal)是一個網絡封包分析軟件。


圖片.png


20、文件搜索Everything


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


圖片.png


21、文本編輯器notepad++


Notepad++是一套為自由軟件的純文本編輯器,支持眾多程序語言,比如C++、C#、Java等主流程序語言;支持HTML、XML、ASP,Perl、Python、JavaScript等網頁/腳本語言。


圖片.png


參考資料:


【1】魚鷹Osprey? . 《介紹幾款好用的工具 | 嵌入式開發必備 》
【2】佚名 . 《嵌入式開發常用工具(windows)》
【3】佚名 . 《介紹幾款嵌入式開發工具,或許能用上!》
【4】歸云十九少 . 《嵌入式軟件開發工具集錦》
【5】百度百科相關詞條


評論0