一个超高性能「轻量又彪悍」的日志库,特别适合嵌入式平台用,超快,功能又强大
spdlog是一款基于fmt库的超高性能C++日志库,完全C++11零依赖,支持同步/异步模式及多线程安全。它体积极小可做头文件使用,API简洁无需复杂配置,内置文件轮转、按天切割、彩色控制台输出等功能。异步模式下后台线程写日志不阻塞主线程,运行时可动态调整日志级别。相较传统printf,spdlog在ROM/RAM占用、线程安全、格式化效率等方面优势明显,特别适合资源受限的嵌入式平台使用。
最流行的开源硬件平台
spdlog是一款基于fmt库的超高性能C++日志库,完全C++11零依赖,支持同步/异步模式及多线程安全。它体积极小可做头文件使用,API简洁无需复杂配置,内置文件轮转、按天切割、彩色控制台输出等功能。异步模式下后台线程写日志不阻塞主线程,运行时可动态调整日志级别。相较传统printf,spdlog在ROM/RAM占用、线程安全、格式化效率等方面优势明显,特别适合资源受限的嵌入式平台使用。
log.c是一个纯C99编写的轻量级日志库,仅包含log.c和log.h两个文件,无需任何第三方依赖。它统一了嵌入式开发中的日志接口,提供TRACE到FATAL六个日志级别,支持多输出目标(串口、文件、回调),并具备线程安全特性。文章详细介绍了其安装使用方法、核心API及优缺点对比,是嵌入式项目日志管理的理想选择。
NuttX是一款轻量级、可裁剪、类Unix的实时操作系统,遵循POSIX/ANSI标准,API与Linux高度接近。它体积微小(几KB到几MB可配置),支持完全抢占式调度、Tickless无滴答低功耗模式和多核SMP调度。内置文件系统(FAT、LittleFS等)和完整网络协议栈(IPv4/IPv6、TCP/UDP、BSD Socket),同时提供丰富的驱动框架。适用于IoT设备、工业控制、教育研发和机器人等领域,是嵌入式开发者在RTOS选型时的理想选择。
U8g2是一款专为单色OLED/LCD设计的通用图形库,支持上百种屏幕控制器(SSD1306、ST7565、KS0108等),集成线/框/圆/三角等常用图形绘制,提供从5×7到72pt的上百种像素字体。支持FULL buffer和PAGE buffer两种模式,兼顾流畅度与内存占用。统一API设计让开发者无需关心底层硬件差异,切换屏幕时代码几乎无需修改,是嵌入式显示项目的理想选择。
RTIC(Real-Time Interrupt-driven Concurrency)是一个基于Rust的轻量级嵌入式实时操作系统框架。它采用中断驱动任务调度,硬件NVIC优先级直接映射为任务优先级,实现零动态内存分配和编译期死锁检测。RTIC解决了嵌入式开发中的核心痛点:无需手动管理中断优先级、避免资源抢占死锁、消除内存碎片问题。适合对实时性、内存敏感且需要精确WCET分析的工业控制场景。目前全面支持Cortex-M和RISC-V架构。
nanopb是专为资源受限嵌入式系统设计的超轻量级Protocol Buffers库,仅由三个源文件组成,编译后体积仅几KB。它完全不使用动态内存分配,全部采用固定buffer,完美适配只有几十KB RAM的MCU。本文详细介绍了nanopb的核心特性、使用方法、.options文件定制选项,以及在STM32、AVR、FreeRTOS等平台上的测试移植情况,是嵌入式开发者实现高效数据序列化的实战指南。
EIDE是一款基于VSCode的嵌入式开发插件,支持8051、STM8、Cortex-M、MIPS、RISC-V等多种架构。它集成了项目创建导入、编译构建、烧录调试、串口监视等功能,支持KEIL/IAR/Eclipse项目一键导入,兼容JLink/STLink/OpenOCD等调试工具。无需复杂配置即可实现IntelliSense智能提示和调试功能,让单片机开发更加高效便捷。
TinyUSB是一款专为单片机和小型MCU设计的开源、跨平台USBHost/Device协议栈。其核心优势在于内存安全(零动态分配)和线程安全(中断事件统一排队处理),完美解决嵌入式开发中的资源受限、中断处理混乱和可移植性差等痛点。支持CDC、MSC、HID、MIDI、DFU等多种设备类,以及Keyboard、Mouse、Hub等主机功能。代码模块化、示例丰富,可无OS或配合FreeRTOS、RT-Thread使用,适配上百种MCU开发板,是嵌入式USB开发的利器。
QP/C是一款专为资源受限MCU设计的轻量级实时事件驱动框架,基于Active Object模型,支持UML2.5标准分层状态机。它能有效解决嵌入式开发中的任务堆栈管理、状态机代码混乱、多任务优先级冲突等问题,提供确定性调度和事件队列自动管理。框架支持C11/C++17,配备QM模型工具,内存占用小可裁剪,适用于需要高稳定性的商业项目和爱折腾的开发者。