ztask: 不依赖操作系统、无堆无锁的定时任务调度器
任务记在静态表里、主循环轮询派发的合作式定时调度器: 排序链表加表头判定换来 O(1) 轮询,代价是四条边界。含加固实现(重入守卫、一轮预算、超期计数、句柄校验)与完整 C 清单、演示程序、验证脚本。
任务记在静态表里、主循环轮询派发的合作式定时调度器: 排序链表加表头判定换来 O(1) 轮询,代价是四条边界。含加固实现(重入守卫、一轮预算、超期计数、句柄校验)与完整 C 清单、演示程序、验证脚本。
newosp 是面向嵌入式 Linux 的 C++17 header-only 基础库,覆盖消息总线、层次状态机、共享内存 IPC、调度器等模块。本文介绍它的设计原则、核心模块和四个工业示例。
面向激光雷达、工业视觉、机器人等 ARM-Linux 场景,设计一套 C++17 header-only 的流式数据处理架构。覆盖数据流 (10-100 Hz 大块帧) 与控制流 (低频高可靠消息) 的分离处理、零堆分配内存管理、多级流水线调度,基于 newosp 基础设施库实现。
在轻量 RTOS 项目和嵌入式Linux中,合作式任务调度器是比操作系统线程更轻量的执行抽象。
死锁是嵌入式多线程系统中最隐蔽的故障之一。本文从一个典型的双锁死锁场景出发,逐步演示有序锁、lock_guard、try_lock、无锁队列四种防御策略,分析各方案在嵌入式实时系统中的工程权衡。
本文通过严格的基准测试方法,对比多线程高竞争场景下三种同步策略的性能表现:自旋锁 (atomic_flag)、互斥锁 (std::mutex) 和无锁队列 (moodycamel::ConcurrentQueue)。
三核 ARM SoC (3x Cortex-A7 @ 1.2 GHz) + Cortex-M0 支持 Linux + RTOS 异构部署。面向激光雷达和工业控制器,分析 AMP 核间通信 (Mailbox/共享内存)、实时性保障 (硬件定时器 + 中断隔离) 与资源分区策略。
在 FPGA + ARM 双核 SoC (双核 Cortex-A9 @ 667 MHz) 上处理 30 万点/秒激光雷达数据流。PL (FPGA) 负责传感器接口和 DMA 搬运,PS (ARM) 运行 Linux 处理点云算法和网络输出,目标端到端延迟 P99 < 5 ms。
将 RT-Thread SMP 移植到 Zynq-7000 双核 Cortex-A9 平台,解决 MMU 页表配置、L1/L2 Cache 一致性、双核调度器初始化三个核心问题。实测表明带宽不是瓶颈,CPU 处理延迟和调度抖动才是端到端延迟的主导因素。