摘要

激光雷达等传感器固件既要“硬实时”地采集和控制硬件,又要有足够算力做点云处理和网络通讯。
RK3506J 提供 3 个 Cortex‑A7 和 1 个 Cortex‑M0 的异构多核硬件,对这类产品非常有吸引力。
本文使用通俗的语言,比较两种在 RK3506J 上常见的系统部署思路,给出各自优缺点。

平台与术语

  • CPU 架构:3×Cortex‑A7(称为 A 核组)+1×Cortex‑M0(称为 M0)。
  • SMP:A 核组之间的对称多核运行,能把计算任务分给多个 A 核。
  • M0 的角色:小核,适合高频率、确定性强的控制任务(比如电机或前置传感器处理)。
  • IPC(跨核通信):核间可以通过 Mailbox、共享内存加 Spinlock 等机制交换数据和信号。
    在这里插入图片描述

嵌入式固件的需求

  • 实时采集:传感器产生高频数据流,需要零丢帧、可预测的中断响应。
  • 低延迟控制:电机控制与闭环必须有确定性响应(纳秒/微秒级别)。
  • 高强度处理:解算、滤波、坐标变换等需要并行算力来处理点云。
  • 高吞吐输出:通过以太网或 USB 向上游推流,要求稳定的网络栈与驱动支持。

两种架构方案与适用场景

在这里插入图片描述

方案一:A 核跑 Linux,M0 跑 RT-Thread(混合部署,推荐)
  • 适合:需要快速开发、依赖成熟网络驱动或上层生态(如 ROS、Web 界面)的产品。
  • 如何分工:M0 承担所有硬实时任务(电机、必要的采集);A 核上的 Linux 负责点云高级处理、网络与调试工具。通过 Mailbox/共享内存把数据传给 Linux。
  • 优点:利用 Linux 生态、驱动和调试工具;实时任务与应用隔离,降低整体风险。
  • 缺点:M0 的算力可能成为瓶颈;核间带宽要设计慎重以避免成为瓶颈。
方案二:A 核全部跑 RT-Thread SMP(全 RTOS 硬实时)
  • 适合:对延迟、抖动有严格要求的高端 Lidar;需要最短启动和最小内存占用。
  • 如何分工:M0 做电机控制;一个 A 核专责数据采集,另外两个 A 核并行处理点云。核间用共享内存环形缓冲传数据。
  • 优点:最小的调度延迟;时序可控;启动快。
  • 缺点:需要自行实现或移植网络/USB 协议栈,开发成本高。

建议

  • 首选(快速可交付):方案一 — A 核跑 Linux,M0 负责硬实时。适合需要成熟驱动、快速集成上层生态和短时间验证的项目。
  • 目标(极致性能或量产降本):方案二 — 全部使用 RT-Thread SMP,在团队有能力实现网络/USB 驱动时采用。优点是最低延迟和更小的软硬件成本。
  • 实践路径:先用混合方案做原型,把关键瓶颈(M0 算力、核间带宽、外设中断分配)作为度量指标;如果需要,再把热点迁移到 RT-Thread A 核组以优化延迟和成本。

参考

https://www.eet-china.com/mp/a437640.html
https://blog.csdn.net/Industio_CSDN/article/details/144776623

更多推荐