在 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]

Linux 网络编程排障与高性能传输: 从丢包诊断到零拷贝实战

面向嵌入式 Linux 网络的排障与优化指南。覆盖 UDP 丢包全链路诊断(6 个丢包位置与对应 sysctl 调优)、TCP TIME_WAIT 端口耗尽排障、零拷贝方案对比(sendfile/splice/MSG_ZEROCOPY)、dropwatch 内核丢包追踪,以及同机通信的共享内存方案。

February 20, 2026 · 7 min · 1336 words · map[name:DeguiLiu]

工业固件 A/B 分区升级引擎: HSM 驱动 + 三层掉电保护设计

面向工业嵌入式的 A/B 分区固件升级引擎。osp::StateMachine 驱动 8 阶段流程,raw 分区状态持久化、U-Boot 冗余环境变量切换与 bootcount 回滚三层保护实现掉电安全,全程零堆分配 (~10KB 栈/静态),适合 32-256MB RAM 设备。

February 17, 2026 · 7 min · 1285 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]

newosp: 面向工业嵌入式的 C++17 Header-Only 基础设施库

newosp 是面向嵌入式 Linux 的 C++17 header-only 基础库,覆盖消息总线、层次状态机、共享内存 IPC、调度器等模块。本文介绍它的设计原则、核心模块和四个工业示例。

February 17, 2026 · 4 min · 814 words · map[name:DeguiLiu]

newosp 源码中的 C++17 实践: 8 项能力的工程落地

从 newosp v0.4.3 (43 headers, 1153 tests) 源码中提炼 C++17 能力的实际工程运用。每项附具体代码位置、设计决策和 C 语言对比,展示工业嵌入式库如何将语言特性转化为可靠性与性能优势。

February 17, 2026 · 4 min · 764 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]

如何设计嵌入式并发架构: newosp 的事件驱动 + 固定线程池方案

面向 4 核 ARM-Linux、32-256MB RAM、-fno-exceptions 的工业嵌入式场景,newosp 采用事件驱动消息总线 + 固定线程预算 + 可移植 I/O 抽象的并发架构,涵盖零堆分配、线程预算与背压控制。

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

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

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

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

嵌入式 A/B 分区固件升级引擎: HSM 状态机 + 三层掉电保护

面向 4 核 ARM-Linux (32-256MB RAM) 的工业级 A/B 分区固件升级引擎。osp::StateMachine 驱动 8 状态流程,raw 分区状态持久化、U-Boot 冗余 env 切换与 bootcount 回滚三层保护保证掉电安全,全程零堆分配。

February 17, 2026 · 11 min · 2287 words · map[name:DeguiLiu]

newosp ospgen: YAML 驱动的嵌入式 C++17 零堆分配消息代码生成

newosp ospgen 是一个约 200 行的 Python 生成器,把 YAML 消息定义转成嵌入式 C++17 代码:trivially_copyable 结构体、enum class、std::variant 载荷、sizeof 断言和 Validate()/Dump()。

February 16, 2026 · 8 min · 1583 words · map[name:DeguiLiu]

行为树在嵌入式系统中的工程实践: Tick 机制、异步节点与 newosp 集成

行为树凭借 Tick 心跳和 RUNNING 状态,在单核 MCU 上实现无需多线程的协作式并发。本文从 Tick 运行模型出发,以 newosp 的 osp::BehaviorTree 为主线,结合 HSM+BT 组合模式和视觉平台预览服务重构案例,给出嵌入式落地路径。

February 16, 2026 · 8 min · 1527 words · map[name:DeguiLiu]

共享内存 IPC 实践: 从 POSIX shm 到 newosp 无锁 Ring Buffer

共享内存是 Linux 上延迟最低的 IPC 机制,但 POSIX shm_open/mmap 缺少同步、生命周期管理和崩溃恢复。本文剖析 newosp 中 ShmRingBuffer 的 CAS 无锁设计、ARM 内存序加固与缓存行对齐,并与 cpp-ipc 对比架构取舍。

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

嵌入式 C++ 智能指针的五个陷阱与零堆分配替代方案

std::shared_ptr 和 std::weak_ptr 在实时系统里会引入原子引用计数、堆碎片化和竞态风险。本文从一个 weak_ptr 竞态 bug 出发拆解五个陷阱,并给出 newosp 的零堆分配替代路径。

February 16, 2026 · 10 min · 1919 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]