1. 课程导入
在嵌入式系统演进过程中,一条清晰的趋势是:设备既要具备丰富的网络、文件系统、图形界面与生态软件能力,又必须对电机控制、传感器采样、通信协议栈等任务给出确定性的实时响应。传统方案往往在“功能丰富”与“实时可靠”之间二选一,而Linux 与 RTOS 混合部署正是为化解这一矛盾而出现的工程方法:在同一颗多核处理器(或同一 SoC 内)上,让 Linux 承担非实时、复杂业务与人机交互,让 RTOS 承担硬实时、周期性强、抖动敏感的控制任务,并通过核间通信、资源共享与统一启动流程把它们组织成一个可交付的系统。
一、什么是混合部署:从“两个系统”到“一个产品”
混合部署不是简单地把 Linux 和 RTOS 分别烧到两块板子上,而是强调同一硬件平台、统一资源管理、明确职责边界、可协同工作。典型形态包括:
- 非对称多处理(AMP):不同核心运行不同操作系统,例如 Cortex-A 核跑 Linux,Cortex-M 核或同构从核跑 RTOS,核间通过共享内存与中断通信。
- 虚拟化混合:Hypervisor 或 Jailhouse 等方案在同一核上划分虚拟单元,Linux 与 RTOS 作为不同 Guest 共存,强调隔离与资源配额。
- 同核双域/协处理:Linux 通过 remoteproc/rpmsg 管理远端 RTOS 固件,常见于 TI Sitara、NXP i.MX、瑞芯微等平台。
无论哪种形态,工程上都要回答四个问题:谁负责实时?谁负责生态?它们如何通信?出问题时如何定位? 这正是本课程贯穿始终的主线。
核心定义:Linux 与 RTOS 混合部署,是在同一计算平台上,以明确的实时/非实时职责划分为前提,通过启动编排、核间通信、共享资源保护与调试观测手段,使 Linux 的丰富生态与 RTOS 的确定性响应共同构成一个可量产、可维护的嵌入式系统。
二、学习目标:学完之后你能做什么
- 能解释 AMP、虚拟化、remoteproc/rpmsg 等混合部署形态的差异与适用边界。
- 能根据任务周期、抖动容忍度、数据量,划分 Linux 侧与 RTOS 侧的功能边界。
- 能搭建最小可运行的混合部署系统:RTOS 固件加载、核间通信打通、共享内存读写正确。
- 能使用示波器、GPIO 翻转、trace、日志等手段测量端到端延迟与抖动。
- 能识别并规避缓存一致性、内存越界、优先级反转、启动时序竞争等典型陷阱。
三、整体知识框架
本课程按“认知—搭建—通信—实时—优化—交付”的路径展开,可用下面的结构关系图理解各模块之间的支撑关系。图中左侧是硬件与启动基础,中部是通信与资源协同,右侧是实时性保障与工程交付,三者共同构成混合部署的能力栈。
四、典型应用场景
混合部署的价值在具体场景中最容易理解。下表列出常见领域及其职责划分方式,可作为后续方案选型的参考清单。
| 应用场景 | Linux 侧职责 | RTOS 侧职责 | 关键指标 |
|---|---|---|---|
| 工业伺服驱动 | HMI、参数配置、远程运维 | 电流环、速度环、PWM 输出 | 周期 ≤ 100 μs,抖动 < 5 μs |
| 汽车域控制器 | 座舱交互、OTA、数据上云 | CAN 网关、安全监控 | 报文延迟确定性 |
| 机器人控制器 | 视觉、路径规划、ROS 节点 | 关节伺服、力控闭环 | 控制周期 1 ms 稳定 |
| 医疗监护设备 | 界面、存储、网络上报 | 信号采集、报警逻辑 | 采样不丢点、报警及时 |
| 电力保护装置 | 人机界面、规约转换 | 保护算法、跳闸输出 | 动作时间可重复 |
五、常见误区与复盘提示
误区一:把“能跑起来”当成“混合部署完成”。两个系统各自启动成功,并不代表核间通信可靠、资源不冲突、实时性达标。验收必须包含压力测试与异常注入。
误区二:忽视缓存一致性。在 AMP 架构中,Linux 与 RTOS 共享内存时若未正确处理 cache 维护或使用非缓存区域,会出现“数据偶尔错”的难查问题。
误区三:实时任务被 Linux 侧拖累。共享总线、DDR 带宽、中断风暴都会让 RTOS 侧抖动变大,边界划分时要预留资源余量。
复盘建议:每完成一个阶段,记录三件事——当前延迟基线、已知风险点、下一次要验证的假设。混合部署的难点往往不在“写代码”,而在“定位跨域问题”。
下面是一段典型的启动与固件加载观察命令,后续章节会反复用到类似手段确认 RTOS 是否被正确拉起:
# 查看 remoteproc 状态
cat /sys/class/remoteproc/remoteproc0/state
# 加载并启动 RTOS 固件
echo start > /sys/class/remoteproc/remoteproc0/state
# 查看核间通信通道
ls /dev/rpmsg*
dmesg | grep -i rpmsg
从本章开始,你将逐步建立一套“可测量、可复现、可交付”的混合部署工程方法。请先记住三个关键词:职责边界、核间协同、实时度量。它们会在后续每一章中反复出现,并最终汇聚成你独立设计混合部署系统的能力。