ztask: 不依赖操作系统、无堆无锁的定时任务调度器

任务记在静态表里、主循环轮询派发的合作式定时调度器: 排序链表加表头判定换来 O(1) 轮询,代价是四条边界。含加固实现(重入守卫、一轮预算、超期计数、句柄校验)与完整 C 清单、演示程序、验证脚本。

October 16, 2026 · 13 min · 2645 words · map[name:DeguiLiu]

MCU 周期服务的共享状态: 读改写原子性、拒绝重入与锁的位置

在「一个工作线程 + 多个命令入口 + 共享状态」的 MCU 服务里,偶发缺陷大多来自三处:读改写被别的线程插进来、派发过程被重入、锁散落在各个分支里。本文给出三个低成本的收敛办法,并用两种写法的代码指标做对照。

September 22, 2026 · 3 min · 605 words · map[name:DeguiLiu]

USB 视频设备枚举与能力协商: 描述符、Probe 与 Commit

主机能够枚举一颗从未见过的芯片,并非因为主机预先识别了该芯片,而是因为设备按 USB 规范用描述符描述自身。描述符说明设备的身份与接口数量,Probe/Commit 协商确定输出格式。

September 18, 2026 · 4 min · 782 words · map[name:DeguiLiu]

串口控制线时序陷阱: DTR 与 RTS 导致的偶发复位

串口 open 会在返回前应用 DTR/RTS 默认状态;控制线接到复位脚时会造成隐蔽复位。本文用实测定位时序根因,并给出打开前置低的写法。

September 12, 2026 · 2 min · 263 words · map[name:DeguiLiu]

Nginx 内实现 RTMP 转 WebRTC: 亚秒级低延迟直播

不引入独立 RTC 服务,在 nginx 框架内直接完成 RTMP 到 WebRTC 的转换,延迟从 RTMP/HLS 的 1 到 10 秒降到 0.5 秒以内。端到端实测首包约 560 ms,HTTP-FLV 分发保留作为兜底。

September 10, 2026 · 6 min · 1174 words · map[name:DeguiLiu]

事件循环库的定位: 中断下半部与事件管家

libev 不碰硬件中断,却为中断驱动的系统提供了完整的「慢事慢办」机制。它的定位可以一句话说清:下半部调度器。

September 8, 2026 · 2 min · 219 words · map[name:DeguiLiu]

PySide6 工业上位机: 实时帧链、零拷贝与原生核心

以 PySide6 上位机为例,梳理实时帧链的三条主线: 线程与背压、零拷贝与跨语言边界、打包与解释器。结论是单个 GUI 主线程加同进程 C++ 真线程,大帧只传 token 视图。

August 23, 2026 · 6 min · 1200 words · map[name:DeguiLiu]

USB 固件烧写工具: Vendor 命令、分区与回读校验

从 USB vendor 设备初始化到 Flash 擦写与 4K 回读校验,拆解固件烧写工具的三层架构、命令头、分区映射和失败定位。

August 20, 2026 · 3 min · 545 words · map[name:DeguiLiu]

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

EWSS: 面向嵌入式 Linux 的轻量级 WebSocket 服务器

从 Simple-WebSocket-Server 重构而来,去掉 ASIO 依赖,用 poll Reactor + 固定 RingBuffer + 状态机实现一个 67KB 二进制、12KB/连接、热路径零堆分配的嵌入式 WebSocket 服务器。

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

fccu-cpp: C++17 Header-Only 软件故障收集器

fccu-cpp 是一个 C++17 header-only 软件 FCCU 组件,复用 newosp 成熟设计模式,基于外部 SPSC ringbuffer 和两层 HSM 构建,零堆分配、裸机友好。本文介绍其架构设计、关键模式和集成方式。

February 19, 2026 · 5 min · 1027 words · map[name:DeguiLiu]

跨进程数据分发: newosp SPMC 共享内存实战

从进程内 MPSC 总线到跨进程 SPMC 共享内存,newosp 同时支持 1:1 (SPSC) 和 1:N (SPMC) 两种共享内存数据分发模式。本文以 LiDAR 点云分发为例,展示 SPMC 的设计、实现和工业应用场景。

February 17, 2026 · 7 min · 1372 words · map[name:DeguiLiu]

基于无锁消息总线的观察者模式: 零堆分配、单线程消费

基于无锁 MPSC 消息总线,实现嵌入式场景下的数据分发架构。提供两种方案: Component 动态订阅版和 StaticComponent 零开销编译期分发版。单文件 ~100 行,零堆分配,单 worker 线程处理所有订阅者。

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

LMDB 在嵌入式 Linux 上的实践: 零拷贝读取与内存映射 I/O

LMDB 是基于 B+ 树 + mmap 的嵌入式 KV 数据库,编译产物 < 50KB,零拷贝读取,CoW 断电安全。本文从嵌入式 Linux 视角评估 LMDB 的适用场景(标定数据、设备配置、OTA 元数据)、架构原理、工业级代码质量、加密方案,以及跨平台 Python 工具链在工厂标定工位中的实际应用。

February 17, 2026 · 7 min · 1417 words · map[name:DeguiLiu]