Linux 编程: 嵌入式 ARM 平台网络实时性能优化

面向工业传感器平台的 ARM Linux 网络实时优化:先讲应用层收包、poll/select、队列、内存池和零拷贝,再逐项说明 IRQ/NAPI、RPS/RFS、缓冲区、CPU 隔离和 PTP 参数的理由。

October 18, 2026 · 7 min · 1365 words · map[name:DeguiLiu]

C++ 零堆零拷贝: 事件只构造一次,全程只传指针

coact 在固定事件池中构造事件和 payload,后续提交、排队、派发和回收只传 Event*;用侵入式引用计数和所有权转移管理多 AO 共享与回收,并对照 lwIP pbuf、libev watcher 说明边界。

October 18, 2026 · 4 min · 727 words · map[name:DeguiLiu]

DMA 物理内存映射与 FPGA 环形缓冲: 零拷贝通路与无锁读写

FPGA 采集到的数据由 DMA 写进 DDR,用户态程序用 /dev/mem 映射同一块物理内存把它读出来。这条通路上没有数据拷贝,双方能对上靠的是事先约定的物理地址。无锁则来自另一处设计:环形队列把读写状态拆成两个各自单向递增的计数器,锁就没有存在的必要。

October 6, 2026 · 4 min · 743 words · map[name:DeguiLiu]

XCOM 串口调试工具: 固定内存与 Lua 热扩展

XCOM 是 Windows 10/11 x64 串口调试工具,使用 512 KB 固定接收池、C++ 串口核心和 Lua 热扩展,在保持字节流完整的同时降低改功能成本。

September 14, 2026 · 2 min · 277 words · map[name:DeguiLiu]

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

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

August 23, 2026 · 6 min · 1200 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]

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

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

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

跨语言共享内存 IPC: C++ 与 Python 的零拷贝数据通道设计

工业视觉系统中 C++ 采集 1080p/4K 视频、Python 做深度学习,socket 方案序列化开销高达 10ms,共享内存是唯一能做到零拷贝的选择。本文详解 cpp_py_shmbuf:POSIX 共享内存 + 无锁字节环形缓冲 + 跨语言 POD 协议。

February 18, 2026 · 8 min · 1499 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]

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

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

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

从 C++14 到 C++17: mccc-bus 的四项零堆分配改造

MCCC 系列第三篇。从 C++14 消息总线的四个堆分配瓶颈出发,逐项给出 C++17 替代方案: FixedFunction、VariantIndex 固定数组、Envelope 内嵌 Ring Buffer、FixedString/FixedVector,并附代码对比与性能实测数据。

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

嵌入式配置序列化选型: 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]