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]

对象池在嵌入式热路径上的三个隐性成本

对象池 (mutex + queue + shared_ptr) 比裸 malloc 快约 60%,却带来 mutex、shared_ptr 原子引用计数和动态容器三项隐性成本。本文用串口解析场景量化这三项成本,并给出预分配环形缓冲的替代方案。

February 17, 2026 · 2 min · 375 words · map[name:DeguiLiu]

内存屏障的硬件原理: 从 Store Buffer 到 ARM DMB/DSB/ISB

内存屏障是无锁编程的基础,但多数文章停留在 acquire/release 的用法上,没有解释 CPU 为什么重排序。本文从 Store Buffer、Invalidation Queue 和 MESI 三个机制出发,推导四种屏障类型的由来,并详解 ARM DMB/DSB/ISB 三条指令的语义。

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

PIMPL 的三种现代实现: 从堆分配到栈内联

PIMPL 是 C++ 中最经典的编译隔离手段,但教科书只展示了 unique_ptr 一种实现。本文对比三种 C++14 兼容的 PIMPL 实现,Heap PIMPL、Fast PIMPL (栈内联)、函数指针表 PIMPL,从编译隔离、运行时成本、缓存友好性三个维度量化分析,给出不同场景的选型依据。

February 17, 2026 · 6 min · 1188 words · map[name:DeguiLiu]

C11 做不到的事: 10 项 C++17 语言级不可替代能力

筛选标准: 只保留 C11 在语言层面无法实现的能力。从类型安全、编译期计算、内存安全、类型分发四个维度,逐项对比 C++17 与 C11 的语言级差异,附完整代码对比。

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

激光雷达高吞吐数据处理 Pipeline: 模块化架构与 NEON 向量化

用 newosp C++17 基础设施库构建激光雷达等传感器的 DAG 处理 Pipeline:数据面用 SPSC 直连和 Handle 传递实现零拷贝,控制面用 AsyncBus 处理诊断与扇入/扇出,配合 SoA 布局和 Stage 融合,在 ARM Cortex-A53 上达到 100 Hz。

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

嵌入式串口协议栈设计: 粘包、缓冲区滑窗与层次状态机

串口协议解析是嵌入式系统中最基础也最容易被忽视的工程问题。本文基于一个完整的 Linux 模拟工程,深入对比缓冲区滑窗扫描与层次状态机(HSM)两种解析架构,覆盖粘包处理、ISR 设计、环形缓冲区、无锁 SPSC 队列、CRC-CCITT 校验、错误恢复等工程细节,并分别讨论裸机(super-loop)和 RT-Thread RTOS 平台的集成方案。

February 16, 2026 · 11 min · 2200 words · map[name:DeguiLiu]

perf 性能分析实战: 从硬件计数器到火焰图的完整工作流

perf 是 Linux 内核自带的性能分析利器,但多数开发者只停留在 perf top 层面。本文以嵌入式 ARM-Linux 实战为背景,从 PMU 硬件计数器原理出发,系统讲解 perf stat(IPC/缓存/分支预测)、perf record + 火焰图(On-CPU/Off-CPU)、perf sched(调度延迟)三大核心工作流,并给出 ARM 平台缓存访存分析方法和自动化监控脚本。

February 16, 2026 · 12 min · 2488 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]

告别手动输密码: 嵌入式 SSH/SCP 自动化方案

嵌入式 Linux 开发中频繁需要在宿主机和目标板之间传输文件、远程调试。本文从实际需求出发,对比 Expect 脚本、sshpass、SSH 密钥认证三种自动化方案的实现与安全性,然后介绍 SSH Config、ProxyJump 跳板机、rsync 增量同步等进阶技术,构建一套完整的嵌入式远程开发工具链。

February 16, 2026 · 4 min · 777 words · map[name:DeguiLiu]

嵌入式配置序列化选型: struct/TLV/nanopb/capnproto 对比

嵌入式设备的配置数据需要在 Flash/NvM 与内存之间可靠存取。本文从最简的裸 struct memcpy 出发,逐级递进到自定义 TLV、nanopb (Protocol Buffers C 实现) 和 c-capnproto (零拷贝固定布局),形成四档方案对比。重点分析各方案在版本兼容、读写性能、维护成本上的取舍,并结合 Flash 扇区擦除特性论证为何整体重写并非性能瓶颈。

February 16, 2026 · 12 min · 2429 words · map[name:DeguiLiu]