fccu-cpp: C++17 Header-Only 软件故障收集器
fccu-cpp 是一个 C++17 header-only 软件 FCCU 组件,复用 newosp 成熟设计模式,基于外部 SPSC ringbuffer 和两层 HSM 构建,零堆分配、裸机友好。本文介绍其架构设计、关键模式和集成方式。
fccu-cpp 是一个 C++17 header-only 软件 FCCU 组件,复用 newosp 成熟设计模式,基于外部 SPSC ringbuffer 和两层 HSM 构建,零堆分配、裸机友好。本文介绍其架构设计、关键模式和集成方式。
面向工业嵌入式的固件 A/B 分区升级引擎设计与实现。以 osp::StateMachine 驱动 8 阶段升级流程,通过 raw 分区状态持久化 + U-Boot 冗余环境变量原子切换 + bootcount 自动回滚三层保护实现任意时刻掉电安全。不同于 SWUpdate/RAUC 的重依赖设计,本引擎全程零堆分配 (~10KB 栈/静态),适合 32-256MB RAM 的资源受限嵌入式系统。
面向 4 核 ARM-Linux (32-256MB RAM) 的工业级固件升级引擎设计与实现。以 osp::StateMachine 驱动 8 状态升级流程,通过 raw 分区状态持久化 + U-Boot 冗余 env + bootcount 自动回滚三层保护实现任意时刻掉电安全,升级路径全程零堆分配 (~73KB 栈/静态)。本文从与 SWUpdate/RAUC 的差异出发,详解 128 字节二进制包头、CRC-32 + SHA-256 + Ed25519 三层校验、函数指针表 HAL 抽象、x86 仿真层设计,附完整代码和演示输出。
串口协议解析是嵌入式系统中最基础也最容易被忽视的工程问题。本文基于一个完整的 Linux 模拟工程,深入对比缓冲区滑窗扫描与层次状态机(HSM)两种解析架构,覆盖粘包处理、ISR 设计、环形缓冲区、无锁 SPSC 队列、CRC-CCITT 校验、错误恢复等工程细节,并分别讨论裸机(super-loop)和 RT-Thread RTOS 平台的集成方案。
QP/C (Quantum Platform in C) 是一个面向嵌入式实时系统的事件驱动框架,其核心是 Active Object (主动对象) 并发模型与层次状态机 (HSM)。本文从架构设计出发,深入剖析 QPC 的三大支柱: HSM 的冒泡-继承-覆盖机制与 QHsm/QMsm 双实现策略、QActive 零拷贝无锁事件队列的 SPSC 设计、以及 QActive 在 RT-Thread 上的完整移植方案。通过 1kHz 高频采样案例展示框架的工程优势。
以 state_machine 框架的重构为案例,展示如何将一个过程驱动的 C 语言状态机改造为数据驱动的层次状态机 (HSM)。涵盖转换表替代 switch-case、LCA 算法消除递归、用户缓冲区替代内部分配、守卫条件与内外转换区分等关键改造点,附完整数据结构和 API 设计。
以激光雷达点云处理流水线为主线,展示 newosp C++17 事件驱动架构如何解决工业传感器系统的三大工程难题: 零堆分配消息传递 (CAS 无锁 MPSC + variant 值语义)、可建模的状态管理 (层次状态机 LCA + Guard)、以及微秒级确定性调度。从端到端数据流切入,逐层拆解 AsyncBus、HSM、SPSC 如何协同支撑一条完整的工业数据处理流水线。