GitHub 嵌入式热门项目全景图:从 MCU 到 Linux,谁在星光灿烂
一份不靠 awesome list 凑数、真正从项目角度出发的嵌入式开源全景扫描。按领域分类,附运行平台和 Star 数,顺便聊聊为什么它们值得你关注。
先说一件让人有点尴尬的事
GitHub 上搜"embedded",第一页能找到:某大学的嵌入式课程作业仓库、某人的 STM32 点灯练习、还有不知道什么年代的 AVR 代码……
真正好用的嵌入式开源项目,往往不打"embedded"标签,而是在各自的细分领域悄悄积累 Star。
这篇就帮你把它们挖出来,按领域 × 平台 × Star整理,省得你自己翻。
🔧 一、实时操作系统(RTOS)
FreeRTOS — 嵌入式 RTOS 的老大哥
|
项目 |
Star |
平台 |
许可 |
| FreeRTOS/FreeRTOS |
⭐ 14k+ |
ARM Cortex-M/R/A, RISC-V, ESP32, STM32... |
MIT |
FreeRTOS 已经有 20 年历史了,依然是嵌入式 RTOS 的第一选择。Amazon 在 2017 年接管后,维护力度反而更强了——因为 AWS IoT 大量设备在跑它,你懂的,商业利益是最好的维护动力。
支持的芯片多到数不清,ESP32、STM32、NXP、TI 的各种片子都有现成的移植,基本属于"先用 FreeRTOS,遇到问题再说"的存在。
真实案例:某工业 PLC 控制器,要同时处理传感器采样、Modbus 通信、HMI 刷屏三个任务。FreeRTOS 的任务优先级机制保证传感器采样(最高优先级)不会因为界面刷新卡住,通信任务也不会因为大块数据处理饿死。
Zephyr RTOS — 来自 Linux 基金会的野心之作
|
项目 |
Star |
平台 |
许可 |
| zephyrproject-rtos/zephyr |
⭐ 11k+ |
ARM, RISC-V, x86, ARC, Xtensa |
Apache 2.0 |
Linux 基金会 2016 年推出,Intel、Nordic、NXP 都在背后撑腰。Zephyr 的野心很大:想做嵌入式里的 Linux——统一的驱动模型、统一的构建系统(West + CMake + Kconfig)、内置 BLE/WiFi/Thread/LoRaWAN 协议栈。
代价是复杂度。第一次上手 Zephyr,你大概率会在 West 环境配置上卡半天,然后发现 menuconfig 的选项多到眼花。但一旦跑起来,换芯片只需要改一个板卡定义文件,驱动、协议栈全复用,对多平台产品线很友好。
注意:2024 年的 RTOS 性能报告显示,Zephyr 的实时性表现不如 FreeRTOS,官方正在优化中。如果你的场景对实时性要求极高,先测一测。
MicroPython — 在 MCU 上跑 Python,认真的
|
项目 |
Star |
平台 |
许可 |
| micropython/micropython |
⭐ 19k+ |
ESP32, RP2040, STM32, nRF, Unix |
MIT |
没错,正经的 Python 3 解释器,运行在只有几百 KB RAM 的微控制器上。机器码在 Flash 里,Python 脚本跑在 RAM 里,GC 自动管内存。
适合快速验证想法、教学场景、非实时性要求的 IoT 设备。ESP32 + MicroPython 是 Maker 圈的标配组合,REPL 调试比 GDB 友好多了。
别拿它跟 C 比速度——那是耍流氓。但拿它跟"需要两天才能跑通一个 Hello World 的裸机 C 工程"比开发效率,MicroPython 赢了。
🖥️ 二、嵌入式 Linux 系统构建
Buildroot — 快速定制 Linux 的瑞士军刀
|
项目 |
Star |
平台 |
许可 |
| buildroot/buildroot |
⭐ 2.7k+ |
ARM, x86, MIPS, RISC-V, PowerPC |
GPL v2 |
一句话:给你一个 menuconfig,你选好需要啥,它帮你把交叉编译工具链、内核、根文件系统全部从源码编译出来,15-30 分钟搞定一个可以跑的最小 Linux 系统。
适合对 Flash 尺寸有要求的产品(比如只有 128MB eMMC 的工控板),裁剪出来的系统可以小到几十 MB。不支持运行时包管理,软件版本冻结,适合产品化场景。
真实案例:某智能门锁控制板,搭载全志 A33,只有 256MB eMMC。用 Buildroot 构建定制系统,去掉了一切不需要的东西(连 bash 都换成了 busybox ash),最终系统镜像 48MB,留出大量空间给应用数据。启动时间 5 秒内,开机即业务。
Yocto Project — 企业级嵌入式 Linux 的工厂
|
项目 |
Star |
平台 |
许可 |
| yoctoproject/poky |
⭐ 1.1k+ |
几乎所有 Linux 能跑的架构 |
MIT/GPLv2 |
Buildroot 是快餐,Yocto 是正餐。Yocto 的设计哲学是可重复构建 + 层(Layer)机制 + 完整的包管理。你可以维护自己的 meta-xxx layer,把公司的私有驱动、配置、应用打包进去,跨项目复用。
代价是学习曲线。Bitbake 构建系统的语法像是某种上古神明的咒语,第一次出 ERROR 你可能完全不知道从哪开始查。但掌握之后,管理十几款不同硬件的产品线,Yocto 的优势就出来了。
汽车、医疗、工业设备的嵌入式 Linux 基本都在用 Yocto,Boeing 是 Yocto 的白金成员——是的,飞机软件。
🎨 三、嵌入式 UI / 图形库
LVGL — 嵌入式 GUI 的卷王
|
项目 |
Star |
平台 |
许可 |
| lvgl/lvgl |
⭐ 19k+ |
MCU + MPU + Linux,任意显示接口 |
MIT |
只需要 100KB RAM、200-300KB Flash,就能跑出带动画、抗锯齿、触摸手势的 GUI。按钮、滑块、图表、列表、键盘……内置几十个 Widget,样式系统参考 CSS。
更厉害的是它的可移植性:同一份 UI 代码,在 ESP32 的小屏上跑,在树莓派的 7 寸触摸屏上跑,在 PC 模拟器里调试,代码一行不用改。
真实案例:某工业 HMI 终端(STM32H7,800×480 电阻屏),用 LVGL 做了一套工厂监控界面——实时折线图、报警弹窗、参数设置菜单。开发周期从预期的 3 个月缩到了 6 周,主要省在了 LVGL 的 Widget 和样式系统上,不用从像素级开始画。
📡 四、网络协议栈
Mongoose — 嵌入式 Web 服务器里的万能选手
|
项目 |
Star |
平台 |
许可 |
| cesanta/mongoose |
⭐ 11.7k+ |
Linux, RTOS, bare metal |
GPLv2 / 商业 |
两个 C 文件(mongoose.c + mongoose.h),拷进去就能用。TCP、HTTP/HTTPS、WebSocket、MQTT、DNS……网络协议一锅端。内置了完整的 TCP/IP 协议栈(基于 lwIP),甚至可以在没有操作系统的裸机上跑。
ESP32、STM32、RT-Thread,官方都有例子。做设备 Web 管理界面(配置 IP、看日志、OTA 升级)用它最方便,不需要给设备上 nginx。
注意:商用需要买授权,GPLv2 开源版本的限制是你的代码也要开源。开源项目/内部工具随便用,商业产品出货前看清楚协议。
lwIP — 嵌入式 TCP/IP 的老牌实现
|
项目 |
Star |
平台 |
许可 |
| lwip-tcpip/lwip |
⭐ 2k+ |
几乎所有 RTOS + bare metal |
BSD |
lwIP(lightweight IP)是 Adam Dunkels 2001 年在博士论文里写出来的,后来成了嵌入式 TCP/IP 栈事实上的标准。ESP-IDF、STM32 的以太网驱动、各大 RTOS 的网络层,背后基本都是 lwIP。
你大概率不会直接用 lwIP,而是透过某个平台的封装间接用它。但如果你在做网络驱动移植或者调 TCP 参数,迟早得看 lwIP 的源码。
🔒 五、安全 / 加密
Mbed TLS — 嵌入式 TLS 的主流选择
|
项目 |
Star |
平台 |
许可 |
| Mbed-TLS/mbedtls |
⭐ 5.6k+ |
ARM Cortex-M/A, Linux, Windows |
Apache 2.0 |
ARM 出品,PSA Cryptography API 的参考实现。ESP-IDF 内置用的是它,mosquitto TLS 支持用的也是它,Python 的部分加密功能底层也是它。
如果你的设备需要 HTTPS、MQTTS、或者任何需要 TLS 的场景,mbedTLS 是最稳妥的选择。代码质量高,文档完整,arm-none-eabi-gcc 编译没有任何问题。
wolfSSL — 比 mbedTLS 更激进的嵌入式 TLS
|
项目 |
Star |
平台 |
许可 |
| wolfSSL/wolfssl |
⭐ 2.7k+ |
MCU, Linux, RTOS |
GPLv2 / 商业 |
wolfSSL 的卖点是性能和体积:宣称比 OpenSSL 快 5-20 倍,二进制文件比 mbedTLS 更小,支持 TLS 1.3、DTLS 1.3,还有 FIPS 140-2/3 认证版本(卖给做医疗/金融嵌入式产品的客户)。
在极限资源约束的场景(比如 Cortex-M0 的 IoT 设备需要 TLS),wolfSSL 会是更好的选择。yocto 有官方的 meta-wolfssl layer,集成很方便。
📦 六、开发框架 / SDK
ESP-IDF — 乐鑫的官方开发框架(拿走不谢)
|
项目 |
Star |
平台 |
许可 |
| espressif/esp-idf |
⭐ 14k+ |
ESP32 全系列 |
Apache 2.0 |
ESP32 是目前最受欢迎的嵌入式 SoC 之一(没有之一),ESP-IDF 是它的官方 SDK,相当于"ESP32 世界的标准库"。
内置 FreeRTOS、lwIP、mbedTLS、MQTT 客户端、OTA 升级、NVS 存储、各种外设驱动……你想要的,基本都有。文档质量在嵌入式 SDK 里算是出类拔萃的(对比某些国产芯片的文档,你会哭着感谢乐鑫)。
Arduino 用户喜欢 ESP32 的 Arduino core(基于 ESP-IDF),但要用高级特性(双核任务、低功耗模式的精细控制、蓝牙 HCI),还是得直接用 ESP-IDF。
PlatformIO — 跨平台嵌入式开发的一站式管理器
|
项目 |
Star |
平台 |
许可 |
| platformio/platformio-core |
⭐ 7.6k+ |
Arduino, ESP32, STM32, AVR, ARM... |
Apache 2.0 |
如果你同时维护多个平台的嵌入式项目,PlatformIO 是救星。一个 platformio.ini 文件声明目标板、框架、依赖库,pio run 一键构建,pio test 跑单元测试,甚至有远程调试功能。
它的 VSCode 插件装机量超过 1000 万,说明嵌入式开发者早就受够了每个厂商不同 IDE、不同编译链的分裂状态。
真实案例:某团队同时维护 Arduino Nano(AVR)的传感器节点和 ESP32 的网关,还有一个 STM32 的主控,三套代码、三套工具链。换到 PlatformIO 后,一套 CI/CD 流水线搞定三个平台的自动编译测试,换人维护再也不用装三套 IDE 了。
🗂️ 七、文件系统
LittleFS — MCU 上最靠谱的掉电安全文件系统
|
项目 |
Star |
平台 |
许可 |
| littlefs-project/littlefs |
⭐ 5.5k+ |
任何有 Flash 的嵌入式设备 |
BSD-3 |
ARM 的 Mbed OS 团队出品,专门为 NAND/NOR Flash 的磨损均衡和掉电安全设计。两个核心特性:
-
1. 掉电安全:写入过程中任意时刻掉电,重启后文件系统不损坏(用 COW 写时拷贝实现)
-
2. 磨损均衡:自动分散写入,延长 Flash 寿命
ESP32、树莓派 Pico、STM32 的工程里越来越多地用它替代 SPIFFS(SPIFFS 不做磨损均衡,也没法保证掉电一致性)。
真实案例:某远程气象站,靠锂电池 + 太阳能板供电,每天上报 48 次数据到 SD 卡。早期用 FAT,偶发文件损坏,排查一周没找到根因。换 LittleFS 后运行两年没出过数据损坏,后来才意识到早期的问题是云采时电压波动导致写入中断。
🛠️ 八、调试工具
OpenOCD — 开源调试器的基石
|
项目 |
Star |
平台 |
许可 |
| openocd-org/openocd |
⭐ 2.3k+ |
ARM, RISC-V, MIPS, AVR32... |
GPLv2 |
几乎所有"便宜好用"的调试器背后都有 OpenOCD:ST-Link、J-Link(openocd 模式)、CMSIS-DAP、DAPLink……OpenOCD 作为中间层,把调试器的硬件接口翻译成 GDB 能理解的 RSP 协议。
VS Code 的 Cortex-Debug 插件、PlatformIO 的调试功能,底层都是在调 OpenOCD。你平时可能没意识到它的存在,但如果哪天调试器连不上,OpenOCD 的日志是第一个要看的地方。
汇总速查表
|
领域 |
项目 |
Star |
平台范围 |
适用场景 |
| RTOS |
FreeRTOS |
14k+ |
MCU(全家桶) |
工业控制、IoT |
| RTOS |
Zephyr |
11k+ |
MCU + 部分 MPU |
多平台产品线、无线协议 |
| 脚本 / 解释器 |
MicroPython |
19k+ |
ESP32, RP2040, STM32 |
快速原型、教学、非实时 IoT |
| 嵌入式 Linux 构建 |
Buildroot |
2.7k+ |
任意 Linux 架构 |
小体积定制系统 |
| 嵌入式 Linux 构建 |
Yocto/Poky |
1.1k+ |
任意 Linux 架构 |
企业级多产品线管理 |
| UI / 图形 |
LVGL |
19k+ |
MCU + MPU + PC 模拟 |
触摸屏 HMI、嵌入式 GUI |
| 网络 |
Mongoose |
11.7k+ |
Linux, RTOS, bare metal |
设备 Web 管理、MQTT broker |
| 网络 |
lwIP |
2k+ |
几乎所有嵌入式平台 |
TCP/IP 基础层(多作为依赖) |
| 安全 / TLS |
mbedTLS |
5.6k+ |
ARM + Linux |
HTTPS / MQTTS / TLS 通信 |
| 安全 / TLS |
wolfSSL |
2.7k+ |
MCU + Linux + RTOS |
极致资源限制 + FIPS 认证 |
| 开发 SDK |
ESP-IDF |
14k+ |
ESP32 全系列 |
ESP32 一站式开发 |
| 开发工具 |
PlatformIO |
7.6k+ |
几乎所有嵌入式平台 |
多平台统一构建、CI/CD |
| 文件系统 |
LittleFS |
5.5k+ |
有 Flash 的任意平台 |
掉电安全本地存储 |
| 调试工具 |
OpenOCD |
2.3k+ |
ARM, RISC-V, MIPS |
硬件调试(JTAG/SWD) |
最后补一句
这份清单不是终点,是起点。
每个领域还有一堆值得关注的项目(网络安全方向的 TinyCrypt、实时通信的 NanoMQ、文件系统的 FATFS……)没有列进来,主要原因是篇幅有限,以及"好用"这件事因项目而异。
选库的核心原则只有一条:看它解决的问题是不是你的问题,而不是看 Star 数。20k Star 的项目可能对你完全没用,500 Star 的项目可能帮你省三个月。
但 Star 数至少能说明一件事:有多少人踩过同样的坑,并且认为这个项目值得一颗星。
更多推荐
所有评论(0)