在 RT-Thread/MCU 上安全使用 C++:从编译器基线到零开销抽象实践

MCU 上用 C++ 不是禁忌,是有条件的工程选择。本文结合 RT-Thread v5.x 的 C++ 实际支持范围,从编译器基线、多态策略、固定大小容器、内存池 RAII、无锁 SPSC、C/C++ 互操作六个维度给出可落地的决策框架。

February 26, 2026 · 8 min · 1628 words · map[name:DeguiLiu]

newosp 调试 Shell: 多后端架构与运行时控制命令设计

工业嵌入式设备常在 TCP telnet、串口、stdin 等不同环境下调试。newosp 的 Shell 模块用函数指针做 I/O 抽象,一套命令支持多后端,18 个命令覆盖诊断与运行时控制,全程零堆分配、兼容 -fno-exceptions。

February 17, 2026 · 9 min · 1873 words · map[name:DeguiLiu]

MCCC 消息总线零堆分配优化与性能实测

从 MCCC 消息总线优化中提炼 5 个零堆分配模式 (Envelope 内嵌、编译期类型索引、函数指针 RAII、定长容器、编译期配置矩阵),附实测数据: BARE_METAL 18.7 M/s,FULL_FEATURED 5.8 M/s,HIGH 优先级零丢失,E2E P99 449 ns。

February 17, 2026 · 8 min · 1672 words · map[name:DeguiLiu]

嵌入式流式数据处理架构: 传感器到网络输出的全链路设计

面向激光雷达、工业视觉、机器人等 ARM-Linux 场景,设计一套 C++17 header-only 的流式数据处理架构。覆盖数据流 (10-100 Hz 大块帧) 与控制流 (低频高可靠消息) 的分离处理、零堆分配内存管理、多级流水线调度,基于 newosp 基础设施库实现。

February 17, 2026 · 8 min · 1658 words · map[name:DeguiLiu]

C++ 单例模式的线程安全实现: 从 DCLP 的历史缺陷到 C++11 的修复

双重检查锁定 (DCLP) 是 C++ 并发编程中最臭名昭著的模式之一。2004 年 Scott Meyers 和 Andrei Alexandrescu 论证了它在 C++03 中不可移植地安全实现。本文从 DCLP 的历史缺陷出发,解释 C++11 内存模型如何修复它,对比 Magic Statics、acquire/release 原子操作和顺序一致性三种实现,并讨论嵌入式场景下的工程选择。

February 16, 2026 · 7 min · 1345 words · map[name:DeguiLiu]

嵌入式 C++17 设计模式实战: 零虚函数、零堆分配的编译期技术

传统设计模式依赖虚函数和动态分配,在嵌入式系统中代价偏高。本文以 newosp 真实代码为例,给出 8 种编译期替代手法,覆盖类型擦除、RAII、编译期分发、Tag Dispatch、强类型包装、零堆 Pub/Sub、Visitor 与 CRTP。

February 16, 2026 · 9 min · 1805 words · map[name:DeguiLiu]

嵌入式系统中的编译期分发: 用模板消除虚函数开销

结合 MISRA C++ 规范和 newosp 工程实践,说明如何用 C++17 模板做编译期分发,在保留代码灵活性的同时去掉虚函数的分发开销。文中数据来自实测:编译期分发比回调模式快 15 倍,比虚函数分发开销低 95% 以上。

February 16, 2026 · 7 min · 1310 words · map[name:DeguiLiu]

Lock-free MPSC 消息总线的设计与实现: 从 Ring Buffer 到零堆分配

嵌入式系统中,消息总线是组件间通信的核心基础设施。本文剖析 MCCC 的九项设计决策:Lock-free MPSC 替代互斥锁、Envelope 内嵌消除热路径堆分配、编译期类型索引替代哈希查找,并附实测数据。

February 15, 2026 · 5 min · 1032 words · map[name:DeguiLiu]