barebox:一个开源的嵌入式 bootloader,结合了 U-Boot 的经验和 Linux 内核的现代设计

barebox是一款结合U-Boot经验与Linux内核现代设计理念的开源嵌入式bootloader。它通过统一的device/driver模型、POSIX风格文件API、文件化环境管理等方式,解决了传统bootloader启动逻辑混乱、调试困难、环境变量管理不便等痛点。支持KASAN调试、sandbox用户态模拟、多文件系统挂载,提供电源故障安全存储和统一升级框架。适合需要强可调试性、追求开发效率的嵌入式项目。

baremetal-arm:一个面向 ARM 裸机开发的教程仓库和配套代码,适合想从操作系统/驱动层面理解硬件的开发者和爱好者

baremetal-arm是一个面向ARM裸机开发的完整教程仓库,解决嵌入式学习中的教程散碎、环境复杂、黑盒感强、调试困难等痛点。项目包含详细文档和配套源码,涵盖环境搭建、裸机启动、U-Boot、C环境过渡、UART驱动、中断GIC等核心内容。通过QEMU模拟,无需真机即可学习,是嵌入式开发者理解底层硬件的理想起点。

esh:一款超轻量、基于 UART 的嵌入式交互 Shell,体积小(<4KB)、集成方便

esh是Google开源的超轻量级嵌入式交互Shell,体积仅<4KB,基于UART通信。它支持C/C++/汇编函数直接导出为命令行,无需修改Makefile即可自动发现源码和头文件。esh解决了嵌入式开发中「改代码→刷固件→验证」的繁琐循环,开发者可直接在串口交互触发函数、调整参数、实时调试。目前已支持ARM和RISC-V架构,提供QEMU模拟器和物理开发板示例,是硬件bring-up、交互验证和教学演示的利器。

TaskScheduler:一个为 Arduino、ESP8266/ESP32、STM32 等单片机设计的协作式任务调度库

TaskScheduler是一款专为单片机设计的协作式任务调度库,支持Arduino、ESP8266/ESP32、STM32等平台。它能以毫秒级精度管理任务周期和执行次数,解决代码凌乱、频率管理困难等问题。库内置任务超时看门狗、CPU空闲统计、动态修改周期等高级功能,支持FreeRTOS线程安全模式。在普通Arduino上每次调度仅需15-18微秒,极其轻量高效。适合需要多任务协调但不想引入复杂RTOS的嵌入式项目。

DAPLink:一个跑在开发板上作为“桥”的开源固件/接口,实现拖拽刷固件、虚拟串口和标准化 CMSIS‑DAP 调试功能。

DAPLink是ARM开源的调试桥接固件,运行在开发板上作为USB与MCU之间的桥梁。它将拖拽烧录、虚拟串口、标准化调试功能集于一身:MSC模式让烧录像复制文件一样简单,CDC实现免驱动串口通信,CMSIS-DAP支持主流IDE断点调试,WebUSB更可实现浏览器直接调试。开源免费、跨平台兼容是它的核心优势,特别适合学生入门、原型开发和教学场景,是嵌入式开发中省时省力的全能工具。

一款自包含的调试器,专为微控制器设计,能够自动识别和配置连接的目标设备

Black Magic Debug是一款专为微控制器设计的自包含调试器,能够自动识别和配置连接的目标设备,无需繁琐的配置文件即可开始调试。它支持ARM Cortex和RISC-V等多种平台,解决了传统调试器设备识别繁琐、工具不兼容、连接复杂等痛点。本文详细介绍了其安装步骤和使用方法,并分析了优缺点,是嵌入式开发者不可错过的调试利器。

STM32CubeF4:一个强大的开发工具,助您快速构建和测试基于STM32F4系列的项目

STM32CubeF4是ST公司为STM32F4系列微控制器打造的嵌入式软件平台,旨在解决开发者面临的代码可移植性、技术支持缺乏及开发成本高等痛点。该工具提供HAL-LL驱动、中间件库和丰富的示例项目,支持多种开发板和环境,可显著提升开发效率。本文详细介绍了通过Git克隆仓库、安装配置及版本切换等使用方法,并客观分析了其优缺点,是嵌入式开发者快速入门STM32F4系列的实用指南。

一个开源的裸机编程指南(Bare Metal Programming Guide),绝对是你最好的“入门+精进”利器

这是一份完全基于GCC和数据手册的裸机编程教程,零框架依赖。每章都有完整示例代码,手把手教你了解MCU内存、寄存器、外设映射,手动实现启动代码、链接脚本和Makefile。支持Cortex-M0+/M4、RISC-V、ESP32等多平台,帮你脱离上层SDK束缚,从寄存器层面彻底搞懂微控制器底层原理,是嵌入式开发者入门和精进的绝佳资源。

一个专门给微控制器系统准备的字体压缩、解压和渲染库,让你的 MCU 显示如此丝滑

MCUFont是一款专为微控制器设计的字体压缩、解压和渲染库,支持16级抗锯齿显示,解码库仅几KB大小。采用纯C语言编写回调接口,完美兼容各类显示硬件。它解决了传统MCU只能显示单色字、无字距行距、只能等宽等问题,支持TTF/BDF字体导入,自动生成RLE压缩位图。适合LCD、OLED等小屏幕项目,让嵌入式显示效果丝滑如手机屏,是DIY小玩物、工业人机界面的理想选择。

Ring-Buffer,数据高速公路上的环形高架,特别适合 UART、SPI、传感器数据采集

Ring-Buffer环形缓冲区是嵌入式开发中解决数据流缓存的神器。本文详细介绍了其工作原理:基于固定大小数组实现首尾相连的环形结构,支持O(1)复杂度的读写操作。具备零动态分配、无内存碎片、Cache友好等优势,特别适用于UART串口接收、SPI通信、传感器数据采集及多任务数据交换等场景。文章提供了完整的API使用示例和优缺点分析,是嵌入式工程师必备的高效数据缓冲技术。