開發人員的嵌入式資源很棒
嵌入式系統開發的來源和LIB的真棒列表
此列表中的來源和LIB的實現專門用於8位,16位和32位微控制器等資源受限的嵌入式系統(低內存和低功率)。
警告此列表不涵蓋任何與Linux相關的主題(例如Raspberry Pi平台或任何其他SBC(單板計算機))。
此列表的永久URL:https://github.com/idoka/awesome-embedded-software
內容
- 常見的
- 記憶
- 貯存
- 協定
- 數據處理
- 密碼學
- 作業系統
- 使用者介面
- GUI
- 硬體
- 其他的
- 線程管理
- 引導加載程序
- 固件更新
- 觸控螢幕
- 時間管理自由
- 可嵌入的腳本和語言
- 編譯器
- 未分類
常見的
- Wiselib-用於異質,分佈式,嵌入式系統的通用算法庫。
- UTIL.EMBEDDED-用於嵌入式開發的有用支持代碼。
- EMBXX-嵌入式C ++庫。
- 嵌入式軟件的嵌入式LIB-庫(主要用於STM32)。
- ETLCPP-嵌入式模板庫,用戶可以在其中聲明任何對象的大小或最大大小。
- EFLL-嵌入式模糊邏輯庫是嵌入式系統的標準庫。
- 雜項便攜式C片段的集合 - 雜項便攜式C片段的集合。
- SC-便攜式,獨立的C庫和數據結構(C99)。
- MicroTBX-開源微控制器工具箱,由嵌入式軟件應用程序中通常需要的軟件組件組成。 MicroTBX用C編程語言(C99)編寫,並牢記Misra的合規性。
- UMLIBC-用於內存約束系統的裸露LIBC。
- µClibC -NG-嵌入式C庫。
- 嵌入式藝術性的LIBC-剝離的C標準庫實現,針對基於微控制器的嵌入式系統。降低的功能集(由於嵌入性質)。選擇用於便攜性和快速搭檔。
- HWLIB-C ++ OO Micro-Controller庫,用於近距離軟件編程。
- CTL -C容器模板庫。有一個快速的編譯,類型安全,僅標頭,用於ISO C99/C11的模板狀容器庫。
- FSMLANG-狀態機器描述語言使用C語言生成器。支持平坦和分層的機器和事件子系統。
記憶
內存管理
- libmemory-內存管理庫,具有Malloc(),Free()和其他有用的內存管理功能的實現。
- LWMEM-具有內存約束的嵌入式系統的輕型動態內存管理器庫。它實現malloc,calloc,realloc和自由功能。
- umm_malloc-小(ISH)微處理器的內存管理器。
- O1HEAP-高度確定性的恆定複雜性存儲器分配器,專為硬實時高融合嵌入式系統而設計。
緩衝區
- EmbeddedProto -C ++協議緩衝區實現專門適用於ARM Cortex -M微控制器。它很小,可靠且易於使用。
- Protobuf-embedded-c-協議緩衝器生成器,用於用C編程語言編寫的資源約束嵌入式應用程序。
環緩衝區
- LWRB-輕型通用環緩衝區管理器庫。
- RINGBUFFER-簡單的中斷安全環(圓形)緩衝區排隊庫,用於嵌入式平台。
- LFBB-無鎖的兩部分緩衝區,環形緩衝區的一種變體,可以始終在緩衝區內提供續簽空間,以讀取,寫作或修改數據就位。
FIFO
- FIFOFAST- MCUS的快速,通用的FIFO。
貯存
文件系統
- LWEXT4-微控制器的Ext2/Ext3/Ext4文件系統庫。
- FATFS-脂肪文件系統實施。
- LevelX-提供閃光磨損的升級,以供Filex和獨立目的。
- UFAT-低內存功能完整的VFAT實現。
- FAT_IO_LIB-小占地面積,低依賴性,C代碼的FAT16和FAT32驅動程序的實現。
- SDFAT -ARDUINO FAT16/FAT32 EXFAT庫。
- FAT32 -Lighweight FAT32文件系統用C編寫,沒有第三部分依賴性。它需要一個小端口,該端口提供用於初始化,閱讀和寫作的功能。
- emfat -FAT32 STM32F4的仿真庫。
- OpenFAT-嵌入式處理器的FAT文件系統實現。
- UC-FS-小型處理器,微處理器和DSP的緊湊,可靠,高性能和線程安全嵌入式文件系統。可選的日記帳組件可在保持脂肪兼容性的同時提供故障安全操作。
- LittleFS-為微控制器設計的小故障安全文件系統。
- UFFS-用於磨損水平和良好容錯的NAND設備的文件系統。
資料庫
- FlashDB-支持鍵值和時間序列數據的超輕質數據庫。
- PUREDB-用於創建和讀取恆定數據庫的庫的便攜式和一組庫。
- Unqlite-嵌入式NOSQL,交易數據庫引擎。
- VEDIS- REDIS的嵌入式實現(一個可嵌入的數據存儲C庫構建的,其70多個命令與Redis相似,但由於Vedis在主機應用程序的相同過程中運行以來沒有網絡層)。
- MicroKVS-微型控制器上的持續配置數據的微型鍵值存儲。
快閃記憶體
- EasyFlash-輕型嵌入式閃存庫。
- FlashAlgo-構建ARM Cortex -M“ FLM”樣式閃光編程算法的框架。
- FCB -Flash圓形緩衝區提供了一個抽象,您可以將其視為FIFO。
協定
- NanOPB- ANSI C中的小型代碼大小協議緩衝區實現。它特別適合在微控制器中使用,但適合任何內存限制的系統。
- 互換 - 使用原子學用於嵌入式開發的請求/響應機制。
- Xmodem- Xmodem庫,用於嵌入式,移動,物聯網和桌面系統。
- TinyFrame-簡單的庫,用於串行接口的構建和解析數據幀(例如UART / RS232)。
- Nanomodbus-用於嵌入式/微控制器的緊湊型Modbus RTU/TCP C庫。
- RCOBS-逆轉錄編碼(RCOBS)是旨在用零lookahead編碼的COBS編碼的變體。
射頻協議
- Radiohead-嵌入式微處理器的數據包庫。
- Adafruit的Radiohead-帶有文檔的嵌入式微處理器的數據包庫。
網絡協議
- UIP-亞當·鄧克爾斯(Adam Dunkels)編寫的TCP/IP堆棧的實現非常小。
- LWIP- Adam Dunkels最初開發的TCP/IP協議套件的小型獨立實施。 LWIP適用於嵌入式系統,具有數十千鍵的免費RAM和空間,可容納40千組代碼ROM。
- httpclient -HTTP客戶庫庫。
- HTTPIO- HTTP協議的獨立跨平台請求解析器和響應生成器。
- POCOTCP-專為嵌入式系統和物聯網而設計的小型腳印,模塊化TCP/IP堆棧。
- RAWTCP_LIB- C庫,用於創建和使用帶有原始網絡插座的TCP/IP數據包。
- LRNDIS- USB上的以太網(RNDIS + LWIP)。
- CyclonetCP-專用於嵌入式應用程序的雙IPv4/ipv6堆棧。該堆棧作為完整的ANSI C和高度可維護的源代碼(示例未包含在GitHub的來源中)。
- staticnet -C ++ TCP/IP和SSH堆棧,其全靜電分配為裸金屬(無操作系統)嵌入式應用程序設計,具有最小的足跡。
Web服務器
- Mongoose-嵌入式Web服務器和嵌入式網絡庫。它為TCP,UDP,HTTP,Websocket,MQTT實現事件驅動的非阻滯API。
- LIBEVHTP-輕鬆固定和安全嵌入的HTTP服務器。
- libμHTTPD-基於libev和http -parser非常靈活,輕巧和完全異步的HTTP服務器庫。
- 沙鳥-Tiny(800SLOC)嵌入式HTTP服務器編寫的C89。
mqtt
- LIBEMQTT 1- MQTT協議的嵌入式C客戶庫庫。
- libumqtt 2-基於libev的輕巧和完全異步的MQTT客戶端c庫。
- PAHO MQTT-嵌入式系統的C客戶庫庫。
協議解析器
正則表達式解析器
GSM
- LWGSM-用於SIMCOM GSM模塊的庫,可與主機設備與AT命令和RTO進行通信。
- GSM_ENGINE-基於AT的模塊的Parser通用。
- TinyGSM-適用於GSM模塊的小型Arduino庫,這只是可行的。
全球定位系統
- LWGPS-嵌入式系統的輕質GPS NMEA解析器。
- MinMea-輕質GPS NMEA 0183 PARSER庫中的Pure C.
在指揮解析器
- ATAT -LIB用於類似於定制的命令處理。
- CAT - 普通C庫,用於在命令上解析,以用於主機設備。
- GZAT- C ++語言中的命令解析庫的便攜式。
- ATPARSER- Command Parser兼容的MBED -OS。
- ATCommander-便攜式C ++庫,用於發送命令並解析其響應。
- LWESP-使用AT命令與ESP8266或ESP32 Wi -Fi模塊通信的命令庫輕量級ESP commands parser庫。
各種協議
- LWPKT-針對RS-485的多設備通信的輕量級數據包協議結構。
- LWOW-輕型Onewire協議庫為嵌入式系統上的UART硬件進行了優化。
- panstamp -swap-任何現有的ISM收音機的簡單無線抽象協議。
- Panstamp -uswap-通過UART連接的MCU的微交換堆棧。
- Min -MicroController InterConnect網絡協議版本2.0。
- libcoap -c用於限制其資源的設備的輕量級應用程序實現,例如計算功率,RF範圍,內存,帶寬或網絡數據包大小。該協議COAP由IETF標準化為RFC 7252。
數據處理
數學
- Liquid-FPM-用於嵌入式信號處理的軟件定義的無線電定位點數庫。
- FPM-C ++僅固定點數學庫。
- eigen-線性代數的C ++模板庫:矩陣,向量,數值求解器和相關算法。
DSP和過濾
- Liquid-DSP-用於軟件定義的無線電的數字信號處理庫。
- Minfft-小而快速離散的傅立葉變換庫。
- IIR1 -DSP IIR實時過濾器庫編寫了C ++。
- KALMAN -CLIB-純C中的微控制器靶向Naive Kalman濾波器實現。
- libdspl-用C語言編寫的跨平台數字信號處理算法庫。
- Pocketfft- fftPack的大量修改。
- KISS FFT-基於“保持簡單,愚蠢”的原則,混合radix快速傅立葉變換。
- CMSIS-DSP-嵌入式Cortute庫,用於Cortex-M和Cortex-A。
- Siglib-數字信號處理和機器學習庫(X86,Cortex-A和Cortex-M,RISC-V,Ti,ADI等)。
- LSP-DSP-LIB-用於數字信號處理的DSP庫提供了一組功能,可在幾個硬件體系結構上執行SIMD優化計算。當前所有功能均在IEEE-754單精製浮點數上運行。
壓縮
- Heatshrink-嵌入式/實時系統的數據壓縮庫。
- shoco -c庫以壓縮和解壓縮短字符串。它非常快速易於使用。默認壓縮模型針對英語單詞進行了優化,但是您可以生成自己的壓縮模型。
- Smaz-壓縮非常小的字符串。
- ECL-嵌入式壓縮庫不僅適用於嵌入式庫,而且主要針對小數據,並且具有特殊優化的低內存模式,用於受限環境。
- UNISHOX2-簡短的Unicode字符串的混合編碼器(Unishox為短文本提供了最佳壓縮,而不是與通用壓縮算法(如LZ4,Snappy,Lzma,lzma,Brottli和ZSTD)進行比較的。
- TCOBS-使用隱式運行長度編碼的膠體框架的簡短消息壓縮,對包含統計學上更多0和FF字節的數據進行了優化,因為數據通常攜帶16、32或64位數字,其值較小。
ai ml
人工智能和機器學習
- Cranium-便攜式,僅標頭,飼料源人造神經網絡庫,用香草C99編寫。
- μTensor -Tinyml AI推理庫。
- FIDO-輕巧的C ++機器學習庫,用於嵌入式電子和機器人技術。
- NNOM-微控制器(NNOM)上的神經網絡是專門針對微控制器的高級推斷神經網絡庫。
- CaffePresso-優化的庫,用於基於嵌入式加速器的平台進行深度學習。
- Libonnx-輕巧的純C99 ONNX推理引擎,用於嵌入式設備,並具有硬件加速支持。
- Tinymaix-專門針對微控制器(Tinyml)的微小推理神經網絡庫。旨在遵循規則:易於使用>便攜式>速度>空間。
簡歷
計算機視覺
- 嵌入式草皮 - 嵌入式計算機視覺和機器學習庫(CPU優化和IoT具有功能)。
- QR-Image-embedded-QR庫叉用於嵌入式系統。
密碼學
一般的
- 桁架 - 在微控制器平台(Rust)上編寫加密應用程序的最小模塊化方式。
- Wolfssh-用ANSI C編寫的輕量級SSHV2客戶端和服務器庫,並針對嵌入式,RTO和資源受限的環境,主要是因為其尺寸小,速度和功能集。
- Libhydrdrogen-輕巧,安全,易於使用的加密庫庫,適用於約束環境。
- K Krypton-嵌入式TLS/DTLS庫,源和二進制兼容OpenSSL子集。
- WolftPM-高度便攜式TPM 2.0庫,設計用於嵌入式使用。
- MBEDTL-開源,便攜,易於使用,可讀和靈活的TLS庫以及PSA加密API的參考實現。
- liblithium-可通過設計便攜式的輕質加密庫。它僅需要標準的C99,並且不假定8位可尋址性,因此適用於某些DSP體系結構以及主流體系結構。
- Trezor -Crypto-嵌入式設備的重新優化的加密算法。
- Poly1305-Donna-快速消息實施代碼的實現(8位,16位,32位和64位乘以版本)。
- Arduinolibs -Arduino密碼圖庫。
- TLSE-使用TomCrypt作為加密庫庫,單個C文件TLS 1.2/1.3實現。
- libtomcrypt-相當全面,模塊化和便攜式加密工具包,可為開發人員提供大量已知已知的已發表的塊密碼,單向哈希功能,鏈接模式,偽隨機數字生成器,公共密鑰加密和其他例行程序的大量。
- 單層面部 - 易於使用,易於部署,可審核的加密庫庫編寫在Portable C中。
- 微型機關 - 嵌入式系統的加密原始圖庫。
- TinyCrypt-加密算法庫為最小一組標準密碼原始圖的約束設備提供了實現。
- Tiny-AES-C-小型便攜式AES128/192/256 C.
- µAES-輕巧,高度柔韌,便攜式和ANSI -C兼容AES加密和阻止密碼模式的實現。
- CycloneCrypto-一個旨在用於嵌入式系統的加密工具包。它提供了一組全面的加密原始圖(哈希功能,流和塊密碼,公共密鑰密碼學),可用於在您的嵌入式應用程序中添加安全功能。
橢圓曲線密碼學
- Salty-ED25519簽名,具有對Cortex-M4和Cortex-M33的組裝優化。
- Micro-ECC-ECDH和ECDSA,用於8位,32位和64位處理器。
- Libuecc-與ED25519兼容的非常小的通用橢圓曲線密碼庫。
- C25519和-ED25519-Curve25519和ED25519用於低內存系統(Curve25519標量乘法使用少於半KB的峰值堆棧使用情況)。
隨機數生成
- PCG-C-BASIC-代碼可最少實現隨機數生成器的PCG家族的一個成員,這些成員快速,統計上很棒,並提供了許多有用的功能。
- PCG -C-代碼提供了隨機數生成器的PCG家族的實現,該家族快速,統計上很棒,並提供了許多有用的功能。
作業系統
- 柑橘 - 裸機ARM®Cortex® -A5操作系統。
- 香草-Ara Bare MetalArm®Cortex® -M7操作系統。
- Chaos -Bare Metal Metal MulticoreArm®Cortex® -A基於微粒體系結構的操作系統。
- LK內核 - 小內核嵌入式操作系統是SMP感知的內核,專為移植到各種平台和CPU架構的小型系統而設計。
- Quarkts-用於支持優先級合作調度,時間控制,任務間通信原始基原始人,層次狀態機器和Coroutines的嵌入式應用程序的操作系統。
- Micro-Ros-Micro-Ros將ROS 2放在微控制器上。
RTO
- ?freertos™-Freertos。
- Zephyr-新一代,可擴展,優化,安全的RTO,用於多個硬件體系結構。
- Apache Nuttx -Apache Nuttx是一個成熟的實時嵌入式操作系統(RTOS)。
- SCMRTOS-旨在與單芯片微控制器一起使用的微型實時搶先操作系統。 SCMRTOS能夠以少量RAM為512字節的小UC上運行。 RTO寫在C ++上,並支持各種平台。
- Chibios/RT-緊湊而快速的實時操作系統,支持多個架構,為8-,16-和32位的微控制器上的嵌入式應用設計。
- Azure RTOS ThreadX-高級實時操作系統(RTOS)專門為深層嵌入式應用而設計。
- ECO-用於嵌入式應用程序的實時操作系統(封閉源) 。
- EMBOX-可配置的RTO,專為資源約束和嵌入式系統而設計。 EMBOX的主要想法是使用沒有Linux的Linux軟件。
- Riot-實時多線程操作系統,該操作系統支持在物聯網(IoT)中通常發現的一系列設備:8位,16位和32位微控制器。 RIOT基於以下設計原則:能源效率,實時功能,小記憶足跡,模塊化和統一的API訪問,獨立於基礎硬件(此API提供了部分POSIX合規性)。
- ARM MBED OS-為物聯網設計的平台操作系統。它包括您需要基於ARM Cortex-M微控制器開發連接產品的所有功能,包括安全性,連接性,RTO和傳感器和I/O設備的驅動程序。
- RT-thread-RT-thread誕生於2006年,它是一個開源,中性和基於社區的實時操作系統(RTOS)。 RT線程具有標準版本和納米版本。對於資源受限的微控制器(MCU)系統,只需易於使用的工具就可以量身定制僅需要3KB閃存和1.2KB RAM內存資源的納米內核版本;對於資源豐富的IoT設備,RT線程可以使用在線軟件包管理工具以及系統配置工具,以實現直觀和快速的模塊化切割,無縫導入豐富的軟件包,從而實現Android的圖形接口和触摸滑動效果,智能語音交互效果等複雜功能。
- 扭曲 - 微控制器的面向對象的C ++ RTO。
- R3-OS-深層嵌入式系統的實驗靜態(μItron風格)RTO,測試Rust的常量和仿製藥的極限(RUST) 。
- TOCK嵌入式OS-嵌入式操作系統旨在在低音和低功率微控制器(RUST)上運行多個並發,互不信任的應用程序。
- 蒲公英 - 生鏽的微核實時操作系統。
- MUDITAOS-基於針對E墨水顯示的Freertos的移動操作系統 - 為Mudita Pure Minimilist手機開發。
- µC/OS-II-搶先,高度便攜式和可擴展的實時內核。設計旨在易於在大量CPU架構上使用。
- µC/OS-III-搶先,高度便攜式和可擴展的實時內核。設計旨在易於在大量CPU架構上使用。
- QP/C-基於活動對象(ACTOR)和層次狀態機器(FUSA,MISRA-C 2023 COMPLIANCE)的嵌入式系統的實時嵌入式框架/RTO。
- 很好的RTO-無滴,最小,500行代碼,7個功能。
基於事件的調度程序
- UEVLOOP-嵌入式平台的快速且輕巧的事件循環。
- LWEVT-嵌入式系統的輕量級事件管理系統。
- 異步 - C中的異步框架對於低存儲器使用率很重要的系統。
- 原始讀 - 為在C中實現的事件驅動的系統提供線性代碼執行,設計用於嚴重內存約束系統,例如小型嵌入式系統或無線傳感器網絡節點。
- Eventos-基於事件的系統設計用於Arduino框架。
- VSF- VERSALOON軟件框架 - 嵌入式系統的小型預先啟動的事件驅動的增量軟件框架。
使用者介面
CLI
- CLI -CLI(命令行接口)示例構建在純C中。為MCU設計,支持塊/非塊模式輸入。
- 終端 - 微控制器的命令行接口。靈活的終端設置允許您在毫不費力的情況下將其集成到任何微控制器。
- SerialMenu -Arduino庫輕鬆在串行控制台上創建菜單。
- 終端服務器 - MCU的終端服務器。
- 微絲 - 小嵌入式設備的外殼。
- CMD -L-嵌入式設備的命令行處理程序。
- 嵌入式CLI-具有歷史記錄和自動完成的單頭CLI,用於嵌入式系統。
- Microshell-虛擬外殼的輕質純C實現,與VT100端子兼容。支持根樹,運行時安裝路徑,全局命令等等。
- MICRORL-具有基本VT100支持的小型和嵌入式設備的微讀行庫。
菜單
- PROMENU-高級通用應用程序菜單庫。 Promenu庫用於快速實施高級用戶菜單。它支持嵌套,數字設置,文本設置,布爾值和事件。庫是在C ++的帶有Build-In Arduino端口的C ++中實現的,但是可以輕鬆移植到不同的體系結構。
- BBMENU-簡單的MISC任務便攜式CLI菜單(它基於文本菜單,在文件中易於定義)。
- MicroMenu-v2- c in C in C中使用的小型文本菜單庫。
printf
- LWPRINTF-針對嵌入式系統優化的輕質printf庫。
- embedded_printf-著名的“ printf()”函數的嵌入式版本。這個想法是創建一個簡單有效的庫,以滿足嵌入式系統中的一些共同需求。
- TinyPrintf-小型printf和sprintf庫,用於小型嵌入式系統。
- Xprintf -fp -printf for嵌入式系統具有浮點支持。
- Xprintf -io-緊湊型字符串I/O庫。它是針對常規printf函數的程序內存不足的微型微控制器的理想選擇。推薦的用途是:將格式的字符串寫入LCD或UART以及用於調試/維護控制台。
- Xprintf-完整的Fprintf()格式化實現,適用於嵌入式使用。
- Tiny-printf-嵌入式系統的微小,快速,非依賴性和滿載的printf實現。廣泛的測試套件通過。
- Tiny-printf新的 - 增強和維護的
tiny-printf 。微小,快速(ISH),獨立且滿載的printf,sprinf等。 - Mini -printf -Minimal printf()實現嵌入式項目。
- Nanoprintf-其功能集最小的公共printf實現。
- FMT-現代格式庫為C STDIO和C ++ iostreams提供了快速安全的替代方案。
- EMIO-非常小的二元足跡std ::格式,例如使用C ++ 20的格式化。
掃描
- SCANF-C。
- ft_scanf-簡單scanf%s%c%d。
記錄
- 嵌入式log- MCU的小而美麗的嵌入式日誌庫。
- EasyLogger-超輕量級(ROM <1.6K,RAM <0.3K),高性能C/C ++日誌庫。
- Trice-超快速且微小的嵌入式設備C printf類似跟踪代碼(也內部中斷)和實時PC記錄(跟踪ID可視化)。
- 嵌入式診斷 - 基於小微控制器項目的輕量級記錄器框架。多級日誌和基於令牌的字符串傳輸。
- SPDLOG-非常快,僅標頭/編譯,C ++記錄庫。
- ELOG - 日誌系統是針對具有少量資源利用率的嵌入式系統的。該日誌系統旨在最大程度地減少閃光燈或RAM中的內存組件,啟用具有非常有效存儲的Efifient InaM Loggin Buffer。
GUI
- LVGL-功能強大且易於使用的嵌入式GUI,具有許多小部件,高級視覺效果(不透明度,反式動畫,動畫)和低內存要求(16K RAM,64K Flash)。
- EasyGui -EasyGui用於嵌入式系統(用於STM32的高度優化)。
- TouchGFX-用戶友好的圖形C ++工具集成了STM32生態系統中的免費工具。
- eGui- egui嵌入式圖形庫。
- EslowGraphics- errorSoft(ESLGL)的低級軟件圖形庫。
- FTK-嵌入式系統的GUI庫。
- U8GLIB-用於8位嵌入式系統的通用圖形庫。
- ?U8G2 -U8GLIB庫,用於單色顯示,版本2。
- SGFX-輕巧的嵌入式庫,用於顯示和触摸屏,可提供建造完整特色的嵌入式GUI所需的一切。
- GUIX-提供完整的,嵌入式的圖形用戶界面(GUI)庫和設計環境,從而促進了設備所需的所有圖形元素的創建和維護。
- Guilib-嵌入式系統的GUI庫。
- HMI_LIBRARY-適用於嵌入式系統的人體機器接口。
- Afgui-嵌入式GUI庫。
- MakiseGui-用於嵌入系統的圖形和GUI庫。
- Emgui-簡單的C UI庫,用於嵌入式平台。
- hagl-用於嵌入式設備的輕型硬件不可能的圖形庫。它支持基本的幾何原始圖,位圖,漏洞,固定寬度字體。圖書館試圖保持輕量級,但針對相當強大的微芯片,例如ESP32。沒有動態分配。
- 嵌入式圖形-2D圖形庫,該圖形庫專注於內存約束的嵌入式設備,以繪製圖形,而無需使用任何緩衝器(Rust)。
- lovyAngfx-顯示(LCD / OLED / EPD)圖形庫(用於ESP32 SPI,I2C,8BITARPARELALL / ESP8266 SPI,I2C / RP2040 SPI / ATSAMD51 SPI等)。
- UGUI(µGUI) - 圖形庫。它支持顏色,灰度,單色和多個顯示器,觸摸屏,窗戶和對象,基本幾何原始圖,字體,控制台。屏幕緩衝區沒有必要的動態分配和內存。在開發人員網站上可用的文檔。
GUI編輯
- lv_gui_designer-拖放,簡單的GUI設計器,用LittleVGL構建。
- WALV-在線,Wysiwyg GUI設計師for Littlevgl。跨平台支持(甚至是Android和iOS)。
字體utils
- bitmap-osd-font-屏幕顯示上的A'C'位圖字體。
- ttf2mesh- trueType字體鑲嵌的庫。允許將字體字形轉換為無柵格化的網狀對象。
- sfam_generator-簡單的腳本,用於生成STM32,AVR,Arduino或其他MCU的位字體。
- McUfont-微控制器的字體渲染庫。
字體和圖標
- PICON-PICO-ICON套件,帶有可黑客綁紮的套件(在8網格上設計:可在8px 16px 24px 32px 48px中讀取)。
圖片操縱工具
- LCD-Image-Converter-為嵌入式應用程序創建位圖和字體的工具;允許您創建位圖和字體,並將它們轉換為嵌入式應用程序的“ C”源格式。
硬體
io
- Fastio-快速GPIO從http://os.mbed.com/users/sissors/code/fastio/分配。
USB
- TinyUSB-嵌入式系統的跨平台USB堆棧。
- libusb_stm32 -STM32微控制器的輕量級USB設備堆棧。
- Cherryusb-帶有USB的嵌入式系統的微型,美麗和便攜式USB主機和設備堆棧。
閃光
- SFUD -Serial Flash Universal驅動程序(使用JEDEC的SFDP標準串行(SPI)閃存通用驅動程序庫)。
可以公共汽車
- LIBCANARD-用於高融合實時嵌入式系統C中無人機/CAN協議的緊湊型實現。
- CANBUS -MESSAGE- TEENSY&STM32的CAN CAN消息組件和拆卸庫。
- CANBOOT -MCUS的CAN BOINLOADER(當前支持LPC176X,STM32和RP2040 MCUS)。
其他的
線程管理
- C型池 - ANSI C中的最小但功能強大的線池。
引導加載程序
- McUboot-安全啟動32位微控制器。
- OpenBLT- STM32,XMC,HCS12和其他微控制器目標的開源引導加載程序。它支持諸如:RS232,CAN,USB,TCP/IP之類的通信界面,並使用易於使用的Microboot PC工具發貨,用於啟動和監視固件更新。還支持直接從SD卡執行固件更新。
- Tinyuf2-基於TinyUSB的引導加載程序,用於嵌入式設備,例如ESP32,STM32和IMX RT10XX。
- Wolfboot-小型控制器的Portable,Portable,Os -Agnostic,安全的引導加載程序,支持固件身份驗證和固件更新機制。
固件更新
- UF2 -USB閃爍格式規範,用於在MSC上閃爍的微控制器(質量存儲類;又稱可移動閃存驅動器)。
- Swupdate-嵌入式Linux設備的軟件更新以在字段中更新系統。 Swupdate支持本地和OTA更新,多個更新策略,並考慮到安全性。
觸控螢幕
時間管理自由
- Timelib-嵌入式設備的時間管理庫。
- μTZ-微小嵌入式系統的時區庫。
可嵌入的腳本和語言
- Little-在單個.c文件中實現的小型,快速,易於嵌入的語言。
編譯器
- SDCC - Small Device C Compiler (that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z180, SM83, Rabbit 2000,2000a,3000a,TLCS-90),Padauk(PDK14,PDK15)和Stmicroelectronics STM8)。
- TCC -Tiny C編譯器(X86 TCC可執行文件〜100KB,包括C預處理器,C編譯器,彙編程序和鏈接器)。
- LCC-可重新定位的ANSI C編譯器(ESP32中的ULP叉)。
- PCC-便攜式C編譯器(鏡像)。
- Tinygo-小事的GO編譯器:微控制器,WebAssembly(WASM/WASI)和命令行工具(基於LLVM)。
- Chibicc-另一個實現大多數C11功能的小型C編譯器。
- RVCC- 32位RISC-V和ARM ISA的自舉C編譯器(生成可執行的Linux精靈二進製文件,用於RV32IM和ARMV7)。
未分類
- Apache Nuttx應用程序 - 工具,外殼,網絡實用程序,庫,口譯員的收集,可以與NutTX RTO一起使用。
- MODM- AVR,SAM和ARM Cortex -M微控制器的ARBONE嵌入式C ++ 20庫發電機(支持3534個設備)。
- Cembed-小型實用程序,用於將文件嵌入C標頭中。
- INCBIN-單位庫,用於編譯時間嵌入二進製文件和文本文件。
- WTX-一組面向Web的工具。
貢獻
腳註
請關注此根repo以獲取最後更新。