开发人员的嵌入式资源很棒
嵌入式系统开发的来源和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以获取最后更新。