實用 – 分享幾個非常實用的開源項目(有哪些開源項目)

前言

本次分享幾個實用的、值得學習使用的嵌入式相關開源項目,下面列舉的這些基本上都在本公眾號分享過,詳細介紹及使用可查看往期筆記。

protobuf

Protocol Buffers,是Google公司開發(fā)的一種數(shù)據(jù)格式,類似于XML能夠將結構化數(shù)據(jù)序列化,可用于數(shù)據(jù)存儲、通信協(xié)議等方面。它不依賴于語言和平臺并且可擴展性極強。

下載鏈接:

https://github.com/protocolbuffers/protobuf

相關使用筆記:

Protobuf:一種更小、更快、更高效的協(xié)議

protobuf-c在嵌入式Linux平臺的使用實例分享

手把手教你在STM32上使用nanopb

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

相關使用筆記:

簡單認識認識mqtt及mosquitto

mqtt應用于進程間通信

cJSON

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。簡潔和清晰的層次結構使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。

cJSON是C語言編寫的用于解析與組包JSON數(shù)據(jù)的一個庫。

下載鏈接:

https://github.com/DaveGamble/cJSON.git

相關使用筆記:

例說嵌入式實用知識之JSON數(shù)據(jù)

「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

相關使用筆記:

分享一個基于全平臺GUI庫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

相關使用筆記:

LittlevGL在STM32上的移植使用

基于vs2019的lvgl模擬器使用

LVGL | GUI-Guider上位機的使用分享

基于framebuffer的LittlevGL的移植使用

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

相關使用筆記:

bug解決不了?使用日志法

OpenBLT

OpenBLT是一種開源引導加載程序,可以在任何微控制器上運行并使用任何類型的通信接口來執(zhí)行軟件更新,而無需專用的調試器硬件。

下載鏈接:

https://sourceforge.net/projects/openblt/files/

相關使用筆記:

OpenBLT Bootloader的使用分享

猜你喜歡:

長文 | 花了兩天時間整理了STM32中的一些C語言知識點

GDB調試器原來那么簡單


1024G 嵌入式資源大放送!包括但不限于C/C 、單片機、Linux等。私信回復1024,即可免費獲?。?/span>

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部