🚗 车载Linux多核调度
核间通信实战
📚 30章 · 完整目录
v1.0
01
课程导学与硬件平台概览
车载ECU发展趋势 · 多核SoC (TDA4, i.MX8) · 开发板与调试环境
02
Linux内核SMP基础
SMP架构原理 · CPU拓扑与调度域 · 内核启动多核初始化
03
CFS调度器深度解析
完全公平调度 · 虚拟时钟与权重 · 调度延迟与最小粒度
04
实时调度策略
RT调度类 (FIFO/RR) · 优先级反转与继承 · 实时任务设计
05
CPU亲和性与隔离
taskset/cpuset · isolcpus参数 · 用户态/内核态隔离
06
中断负载均衡
中断亲和性 · IRQ Balance · 多队列网卡RSS与分发
07
DMA与内存带宽管理
DMA通道分配 · 内存带宽竞争 · CMA与DMA-BUF
08
内核抢占模型
PREEMPT_NONE/VOLUNTARY/FULL · RT-Preempt · 延迟测试
09
核间通信基础
共享内存 & Cache一致性 · 原子操作/内存屏障 · 自旋/读写锁
10
Linux内核锁机制
mutex/rt_mutex · RCU · 顺序锁与信号量
11
核间中断 (IPI)
IPI类型与用途 · 自定义处理函数 · 性能开销分析
12
远程函数调用
smp_call_function · workqueue+IPI · 跨核触发Dump
13
共享内存通信 (SHM)
POSIX共享内存 · kfifo · 无锁环形缓冲区
14
RPMSG框架
RPMSG基础 · VirtIO与RPMSG · 用户态端点编程
15
OpenAMP框架
OpenAMP架构 · RPMsg-Lite · Linux与MCU核间通信
16
MCU与AP核间通信
UART/IPC/SPI对比 · Mailbox硬件 · TI SoC Mailbox驱动
17
多核调试与性能分析
perf多核采样 · ftrace调度事件 · LTTng/Kernelshark
18
调度延迟优化
Cyclictest · NO_HZ/dynticks · Adaptive Ticks
19
CPU热插拔与动态调频
CPU Hotplug · cpufreq/cpuidle · 功耗与性能权衡
20
容器与cgroup调度
cgroup CPU子系统 · Docker/K8s多核影响 · CPU pinning
21
虚拟化与多核
KVM vCPU调度 · VirtIO多队列 · RT虚拟化挑战
22
车载实时中间件
ROS2多核适配 · AUTOSAR Adaptive · DDS与共享内存
23
功能安全与多核隔离
ASIL等级/多核分区 · 锁步核与冗余 · SafeRTOS共存
24
案例:ADAS感知任务调度
摄像头数据流 · 深度学习核绑定 · 显示输出核隔离
25
案例:车载网关数据路由
CAN/LIN/Ethernet转发 · 核间零拷贝 · 带宽保障
26
案例:数字仪表盘与IVI
QoS保障 · GPU/CPU协同 · 帧同步与撕裂避免
27
案例:V2X通信栈
C-V2X协议栈 · 多核并行加密 · 低延迟路径
28
性能基准测试
Latency/Throughput/Jitter · cyclictest, hackbench, stress-ng
29
常见问题与排错
优先级反转 · 死锁分析 · CPU软/硬锁 · OOM调度抖动
30
课程总结与未来展望
异构计算趋势 · RISC-V多核 · Chiplet与互联总线