實用 – 分享幾個非常實用的開源項目(有哪些開源項目)
前言
本次分享幾個實用的、值得學習使用的嵌入式相關開源項目,下面列舉的這些基本上都在本公眾號分享過,詳細介紹及使用可查看往期筆記。
protobuf
Protocol Buffers,是Google公司開發(fā)的一種數(shù)據(jù)格式,類似于XML能夠將結構化數(shù)據(jù)序列化,可用于數(shù)據(jù)存儲、通信協(xié)議等方面。它不依賴于語言和平臺并且可擴展性極強。
下載鏈接:
https://github.com/protocolbuffers/protobuf
相關使用筆記:
nanomsg
nanomsg是一個實現(xiàn)了幾種“可擴展協(xié)議”的高性能通信庫;可擴展協(xié)議的任務是定義多個應用系統(tǒng)如何通信,從而組成一個大的分布式系統(tǒng)。當前版本nanomsg支持以下協(xié)議:
- 配對模式:簡單的一對一的通信;
- 總線模式:簡單的多對多的通信;
- 請求/回復模式:支持組建大規(guī)模的集群服務來處理用戶請求;
- 扇入模式:支持從多個源聚合請求消息;
- 扇出模式:支持分配到多個節(jié)點以支持負載均衡;
- 調查模式:允許在一個單一的請求里檢查多個應用的狀態(tài);
可擴展協(xié)議是在網(wǎng)絡通信協(xié)議之上實現(xiàn)的,當前版本nanomsg支持一下網(wǎng)絡協(xié)議:
- INPROC:單進程內(nèi)通信;
- IPC:單機內(nèi)多進程的通信;
- TCP:通過tcp協(xié)議的網(wǎng)絡通信;
nanomsg用c實現(xiàn),不依賴系統(tǒng)特性,所以支持多個操作系統(tǒng)。
下載鏈接:
https://github.com/nanomsg/nanomsg/releases
相關使用筆記:
mosquitto
mosquitto是一款開源的MQtT消息代理(服務器)軟件,提供輕量級的,支持可發(fā)布/可訂閱的的消息推送模式,使設備對設備之間的短消息通信變得簡單,比如現(xiàn)在應用廣泛的低功耗傳感器,手機、嵌入式計算機、微型控制器等移動設備。
下載鏈接:
https://github.com/eclipse/mosquitto
相關使用筆記:
cJSON
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。簡潔和清晰的層次結構使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。
cJSON是C語言編寫的用于解析與組包JSON數(shù)據(jù)的一個庫。
下載鏈接:
https://github.com/DaveGamble/cJSON.git
相關使用筆記:
「socket應用」基于C語言的TCP天氣客戶端的實現(xiàn)
Unity
Unity 是一個輕量級的測試框架,它使用 C 語言實現(xiàn), 代碼本身很小 。其代碼中大多數(shù)是宏定義,所以實際編譯后的代碼會更小, 比較適合在嵌入式測試應用。
下載鏈接:
https://github.com/ThrowTheSwitch/Unity/releases
相關使用筆記:
CmBacktrace
CmBacktrace (Cortex Microcontroller Backtrace)是一款針對 ARM Cortex-M 系列 MCU 的錯誤代碼自動追蹤、定位,錯誤原因自動分析的開源庫。主要特性如下:
- 支持的錯誤包括:
- 斷言(assert)
- 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)
- 故障原因 自動診斷 :可在故障發(fā)生時,自動分析出故障的原因,定位發(fā)生故障的代碼位置,而無需再手動分析繁雜的故障寄存器;
- 適配 Cortex-M0/M3/M4/M7 MCU;
- 支持 IAR、KEIL、GCC 編譯器;
下載鏈接:
https://github.com/armink/CmBacktrace
相關使用筆記:
ARM Cortex-M 系列 MCU錯誤代碼自動追蹤庫的使用分享
GuiLite
GUILite是一個全平臺GUI庫。
輕量: 4千行C 代碼,0依賴,單一頭文件庫(GuiLite.h)。
超快: 高效渲染,單片機上也能流暢運行。
兼容: 完美兼容第3方GUI框架(Qt/MFC/Winform/Cocoa/Web),現(xiàn)有Qt/MFC代碼可以繼續(xù)使用。
- 支持的操作系統(tǒng):iOS/macOS/WathOS,Android,Linux(ARM/x86-64),Windows(包含VR),RTOS… 甚至無操作系統(tǒng)的單片機
- 支持的開發(fā)語言: C/C , Swift, Java, Javascript, C#, Golang…
- 支持的第3方庫:Qt, MFC, Winforms, CoCoa…
下載鏈接:
https://gitee.com/idea4good/GuiLite
相關使用筆記:
LittlevGL
LittlevGL是一個免費的開源圖形庫,提供了創(chuàng)建嵌入式GUI所需的一切,具有易于使用的圖形元素、漂亮的視覺效果和低內(nèi)存占用。
特點:
- 強大的構建模組 按鈕、圖表、列表、滑塊、圖像等
- 先進的圖形 動畫、反鋸齒、半透明、平滑滾動
- 多樣的輸入設備 觸摸板、鼠標、鍵盤、編碼器等
- 多顯示器支持 支持同時使用多個TFT或單色顯示器
- 多語言支持 UTF-8格式文字編碼
- 完全自定義 圖形元素
- 硬件無關 可用于任意微控制器或顯示器
- 可裁剪 用于小內(nèi)存(80 KB FLASH,12 KB RAM)操作
- 操作系統(tǒng)、外部存儲以及GPU 支持但非必須
- 單幀緩存 即可實現(xiàn)先進的圖形效果
- C語言編寫 以最大化兼容(C 兼容)
- 模擬器 無需嵌入式硬件就可以在電腦上開始GUI設計
- 教程、示例、主題 從而快速GUI設計
- 文檔 在線及離線
- 免費開源 基于MIT協(xié)議
下載鏈接:
https://github.com/lvgl/lvgl
相關使用筆記:
EasyLogger
EasyLogger是一款超輕量級(ROM<1.6K, RAM<0.3K)、高性能的C/C 日志庫,非常適合對資源敏感的軟件項目,例如:IoT產(chǎn)品、可穿戴設備、智能家居等等。
- 支持用戶自定義輸出方式(例如:終端、文件、數(shù)據(jù)庫、串口、485、Flash…);
- 日志內(nèi)容可包含級別、時間戳、線程信息、進程信息等;
- 日志輸出被設計為線程安全的方式,并支持異步輸出及緩沖輸出模式;
- 支持多種操作系統(tǒng)(RT-Thread、UCOS、Linux、Windows…),也支持裸機平臺;
- 日志支持RAW格式,支持hexdump;
- 支持按標簽 、級別、關鍵詞進行動態(tài)過濾;
- 各級別日志支持不同顏色顯示;
- 擴展性強,支持以插件形式擴展新功能。
下載鏈接:
https://gitee.com/Armink/EasyLogger?_from=gitee_search#easylogger
相關使用筆記:
OpenBLT
OpenBLT是一種開源引導加載程序,可以在任何微控制器上運行并使用任何類型的通信接口來執(zhí)行軟件更新,而無需專用的調試器硬件。
下載鏈接:
https://sourceforge.net/projects/openblt/files/
相關使用筆記:
猜你喜歡:
1024G 嵌入式資源大放送!包括但不限于C/C 、單片機、Linux等。私信回復1024,即可免費獲?。?/span>