常言道:工欲善其事,必先利其器。作為一名合格的嵌入式工程師,日常可能需要接觸和處理各種奇奇怪怪的問題,這時候一款高適配性的工具將會令工作效率大大提升。
作者根據個人的實際使用情況與粉絲的客觀感受,為大家推薦幾款嵌入式開發常用的軟體,如下圖示:

Part1Visual Studio Code
VS Code 是一個由微軟開發且跨平臺的輕量級程式碼編輯器,全稱為 Visual Studio Code。它支援語法高亮、自動補全、重構、檢視定義等功能,並且內建了命令列工具和Git版本控制系統。使用者可以透過更改主題和鍵盤快捷方式實現個性化設定,也可以透過擴充套件程式商店安裝擴充套件來拓展軟體功能。

外掛 | 功能註釋 |
---|---|
C/C++ | 這個肯定是必須的 |
C/C++ Snippets | C/C++重用程式碼塊 |
C/C++ Advanced Lint | C/C++靜態檢測 |
Code Runner | 程式碼執行 |
Include AutoComplete | 自動標頭檔案包含 |
Rainbow Brackets | 彩虹花括號,有助於閱讀程式碼 |
One Dark Pro | VSCode 的主題 |
GBKtoUTF8 | 將 GBK 轉換為 UTF8 |
ARM | 支援 ARM 彙編語法高亮顯示 |
Chinese(Simplified) | 中文環境 |
vscode-icons | VSCode 圖示外掛,主要是資源管理器下各個資料夾的圖示 |
compareit | 比較外掛,可以用於比較兩個檔案的差異。 |
DeviceTree | 裝置樹語法外掛 |
TabNine | 一款 AI 自動補全外掛,強烈推薦,誰用誰知道! |

注意:在 Ubuntu 中進行嵌入式開發,VSCode應該更是我們的第一選擇。
Part2Notepad–
Notepad– 是 Windows 環境下的一款免費開源的文字編輯器。它功能強大,支援語法高亮顯示、多重視窗同步編輯、多國語言和多種程式語言,並且可以載入豐富的外掛。Notepad– 還具有完整的中文介面和 UTF8 技術,適合編寫計算機程式程式碼和製作純文字說明檔案。
使用者可以透過安裝外掛來拓展 Notepad– 的功能,例如程式碼摺疊、程式碼提示、文件格式化和文件預覽等。此外,Notepad– 還支援自定義宏,可以幫助使用者快速執行重複任務或批次修改文字。
總之,Notepad–是一款功能豐富、易於使用且具有良好擴充套件性的文字編輯器,適用於編寫各種型別的文字和程式碼。
Part3Visual Studio
不同於 VSCode,Visual Studio 是一個 IDE,我們可以裝一個以備不時之需,比如驗證C程式或是進行C#程式開發等。一些與嵌入式相關的模擬器也是基於 Visual Studio,作者平時的CUDA程式碼亦或是科研工作上的C++程式碼都會使用 Visual Studio 進行驗證模擬工作!

除了標準功能外,Visual Studio 還提供了豐富的擴充套件和外掛,以滿足不同領域的需求。例如,使用者可以透過安裝 C++ 擴充套件來支援 C++ 程式設計,或者透過安裝 Entity Framework 擴充套件來支援資料訪問。
Part4Keil uVision
Keil uVision 是一個由 Keil 公司開發的整合開發環境(IDE),用於嵌入式系統的開發和除錯。Keil uVision 基於C語言和其他程式語言,支援各種微控制器和處理器,包括STM32、AVR、PIC等。

我相信廣大的嵌入式工程師沒有一個不認識上述介面吧,我們接觸最多的STM32 開發通常用的就是該 IDE 。當然,大家一直詬病的是 Keil uVision 的 UI 介面太醜了!MDK6 其實也即將面世,根據作者的瞭解貌似 ui 設計依舊沒有太大的改善,MDK6 貌似更像一個集合體!

Keil uVision 的主要功能包括程式碼編輯、編譯、除錯和模擬等。其中,程式碼編輯器支援語法高亮、程式碼摺疊、自動補全等功能,可以幫助開發人員快速編寫程式碼。編譯功能可以將原始碼編譯成可執行檔案或庫,以便在目標裝置上執行。除錯功能可以幫助開發人員除錯和測試程式碼,包括單步執行、斷點設定、變數監視等功能。模擬功能可以模擬目標裝置的執行環境,以便測試程式碼的正確性和可靠性。
Part5STM32CubeMX
STM32CubeMX 是一個由 ST 意法半導體公司開發的圖形化工具,用於配置和初始化 STM32 微控制器,並生成 C 程式碼。它提供了一個直觀的視覺化介面,可以幫助開發人員快速配置和設定微控制器的各種外設、引腳和時鐘。

STM32CubeMX 可以直接生成 HAL 庫的 STM32 配置程式,極大地方便了個人開發者對於 STM32 系列開發板的使用。熟悉作者本人的應該知道,作者很多專案都是以 HAL 庫作為教學的。HAL 庫的學習好處是很多的,首先意法半導體已經停止對很多開發板的標準庫的維護。其次,FreeRTOS 等 RTOS 對 HAL 庫直接提供了介面 API 函式,方便開發移植!

HAL 庫是未來低程式碼量,高封裝的趨勢。但是,HAL 庫本身也存在很多缺點,程式碼效率低,程式碼冗餘等!
Part6VMWare Workstation
VMware Workstation 是一款功能強大的虛擬機器軟體,它可以在一臺計算機上模擬多個作業系統和應用程式的環境。

嵌入式工程往往需要進行交叉編譯的工作,即在 x86 的架構上編譯出 ARM 架構的程式碼。這種操作往往需要我們在 Linux 系統下進行!考慮到大家辦公需求,大部分工程師還是 window 作為日常作業系統的。所以,VMware Workstation 極大地方便了我們日常生活中的開發!當然,ROS 等使用也都是需要依賴 VMware Workstation 下的 Ubuntu 的。

Part7QT Creator
Qt Creator 是一個跨平臺的整合開發環境(IDE),專門用於開發基於 Qt 框架的 C++ 應用程式。它是由 Qt Company 提供的免費開源工具,適用於 Windows、Linux 和 macOS 等作業系統。

QT 可以算是嵌入式工程師中比較龐大的分支,屬於嵌入式應用層的開發。與 QT 類似的ui開發平臺還有很多!但是,QT可以說是目前比較常見且成熟的!C++ 功底還行的讀者朋友可以往這方面發展發展,薪資待遇都是很不錯的!

當然,QT 也可以用來進行簡單的 C++ 入門學習模擬使用!
Part8MobaXterm
MobaXterm 是一款功能強大的遠端終端模擬器,適用於 Windows 和 Linux 作業系統。它提供了一個整合的遠端終端和 X 伺服器,可以連線各種型別的遠端主機,包括SSH、FTP、Telnet等。關鍵是它還是免費的。序列埠或者SSH等協議通訊時候,終端平臺是可以進行復制貼上的,這實在是泰酷辣!!!!所以MobaXterm 我願稱為最強序列埠除錯助手!!!

作者目前基本 Linux 系統的除錯,樹莓派4B,jeston nano等系列高階板子都是使用它作為終端控制和除錯的,體驗感真的是非常棒的!!!相比於收費的 SecureCRT ,它真的是寶藏軟體!

Part9Vofa+
VOFA+ 是一款直觀、靈活、強大的外掛驅動高自由度的上位機,在與電氣打交道的領域裡,如自動化、嵌入式、物聯網、機器人等,都能看到 VOFA+ 的身影。VOFA+ 的名字來源於:Volt/伏特、Ohm/歐姆、Fala/法拉、Ampere/安培,是電氣領域的基礎單位,與他們的發明者——4位電子物理學領域的科學巨人,分別同名。他們的首字母共同構成了 VOFA+ 的名字。

Vofa+ 簡單來說就是一款支援數字動圖化的上位機,可以用於直觀瞭解即時的資料變化。它也是免費的,同時豐富的外掛也將助力嵌入式工程師實際除錯需求!

Part10Arduino IDE
Arduino IDE 是一款為 Arduino 板提供支援的整合開發環境(IDE)。它是一個簡單易用的工具,可以幫助開發人員編寫、編輯、上傳和除錯基於Arduino的互動式電子產品。如今,Arduino IDE 已經完全適配 ESP8266/32 的開發需求,IDE 提供了豐富的使用案例與 arduino 的庫函式!

部分工程師可能認為 ESP 系列開發板屬於純玩具,亦或是頂多搞搞物聯網,其實非也!根據博主與 MIT 、NJUST 等眾多國內外高校同仁瞭解到:目前,很多高校都將傳統的 STM32 教學改為了 ESP32 教學!同時,樂鑫公司在輕量化邊緣計算方面甚至優秀!!!時代在奔流不息,相信樂鑫的ESP32系列以後大放異彩!

Part11Logic
Logic 是一種數字邏輯電路的建模和分析工具,它可以幫助使用者設計和驗證各種數位電路,包括組合邏輯電路、時序邏輯電路和狀態機等。

邏輯分析儀是嵌入式工程非常常見的檢測工具,邏輯分析儀有很多。但是,Logic 這款顏值和功能都非常耐打!!!奈何價格太貴,不過幸好存在神秘的東方力量!!!
Part12uniapp
uniapp 是一個基於 Vue.js 開發跨平臺前端應用的框架,允許開發者使用一套程式碼,釋出到iOS、Android、Web(響應式)等多個平臺。它支援各種小程式、快應用等多個平臺,使開發者能夠更靈活地應對不同的應用場景。

uniapp的優勢在於:擁有自己的社群,元件豐富,開發難度低。使得非專職 APP 開發人員可以快速上手開發屬於自己的 APP 使用!
Part13Beyond Compare
Beyond Compare 是一個綜合的比較工具,可以用於比較文字、資料夾、檔案等,幫助使用者快速、準確地找到差異和相似之處。它支援多種比較方式,包括文字比較、資料夾比較、檔案比較等,可以用於管理原始檔、保持資料夾同步、比對程式的輸出結果、以及檢查所燒入光碟備份的精確度。

Linux 驅動工程師在學習新的開發板驅動時候,往往就需要使用 Beyond Compare 進行老舊驅動程式碼的對比。這樣,可以快速發現改動了哪些地方,而這些地方則是日後開發需要重點關注的!

Part14Git
Git 是一個分散式版本控制系統,用於跟蹤和管理專案的變更。它是由 Linus Torvalds 於2005年發起並開發的,現在已成為開源專案並被廣泛使用。使用 Git,開發者可以在本地儲存專案的版本歷史記錄,並將其與遠端倉庫進行同步,以便與其他團隊成員共享和協作。它還提供了許多命令和工具,如 **
git init
、git add
、git commit
、git push
**和 **git pull
**等,使得開發者可以輕鬆地管理他們的程式碼庫。
總之,Git是一個強大的工具,可以幫助開發者更有效地管理和協作,同時提供了更好的靈活性和可擴充套件性。

Part15Tracealyzer
Tracealyzer 是一個用於即時跟蹤和分析嵌入式系統的工具。它是由 MathWorks 公司開發的,旨在幫助開發人員更好地瞭解和最佳化他們的嵌入式系統性能。Tracealyzer 透過即時跟蹤系統執行時的行為和事件,提供了對嵌入式系統的深入分析。它可以幫助開發人員識別效能瓶頸、除錯問題和最佳化系統性能。

Tracealyzer的主要特點包括:
-
即時跟蹤:Tracealyzer可以即時跟蹤系統的執行時行為,包括任務執行、中斷、定時器和事件等。 -
效能分析:Tracealyzer可以分析系統的效能指標,如響應時間、延遲和吞吐量等。它可以幫助開發人員識別效能瓶頸和最佳化機會。 -
除錯和故障排除:Tracealyzer可以捕獲系統中的錯誤和異常,並提供詳細的資訊和堆疊跟蹤,幫助開發人員除錯和解決故障。 -
視覺化報告:Tracealyzer生成詳細的視覺化報告,包括任務和事件的時間線、效能指標圖表和堆疊跟蹤等。這些報告可以幫助開發人員更好地理解系統行為並制定最佳化策略。 -
跨平臺支援:Tracealyzer支援多種嵌入式平臺,包括基於Windows、Linux和即時作業系統的嵌入式裝置。
Part16 PyCharm
PyCharm 是一種整合開發環境(IDE),專門用於開發 Python 應用程式。它是一個功能強大的工具,提供了許多功能和特性,以幫助開發者提高效率和建立高質量的 Python 程式碼。

如今大火的人工智慧 AI 技術,譬如:目標檢測,自然語言識別等大都需要進行 Python 神經網路的訓練。這往往需要藉助 Python 的 IDE ,PyCharm 是如今非常主流的人工智慧開發平臺!嵌入式 AI 工程師往往需要在 PyCharm 進行網路模型的訓練,之後再進行部署 AI 板子!

Part17Matlab
Matlab 是一種用於數學計算和工程應用的程式語言和互動式環境。它由 MathWorks 公司開發,是一種廣泛使用的科學計算語言和工具,用於各種領域,如科學、工程、金融等。可能大部分工程師認為 Matlab 是科研工具,只能模擬模擬!其實,我們可以透過 matlab 的 .m 語言程式轉成 C 語言從而在 MCU 中執行一些高階控制演算法!

包括影像的濾波演算法,也可以在 Matlab 中做預演,之後再編寫對應的 C 語言進行移植實現!
文章已獲作者授權轉載,版權歸原作者所有,如有侵權,與本賬號無關,可聯絡刪除。https://sneak.blog.csdn.net/article/details/131803087