00 总览与学习路线¶
推荐学习主线¶
SoC 总体架构
→ CPU 如何执行
→ Cache/内存如何保存数据
→ MMU 如何转换地址
→ 总线/NoC 如何传输事务
→ DMA 如何搬运数据并保持一致性
→ 多核与异构核如何交换数据、通知和恢复
→ 中断/时钟/电源如何控制系统运行
→ 外设如何与外部世界通信
→ Boot/BSP/OS 如何把硬件变为可用系统
→ 如何调试故障并分析性能
建议先完成模块 01,再根据工作方向进入 CPU/OS 主线、外设/驱动主线或芯片/验证主线。
三条阅读路线¶
Linux、BSP 与驱动¶
这条路线先建立操作系统依赖,再进入具体驱动。编写高速设备驱动前,应先掌握 DMA 所有权、IOMMU 和中断路径。
CPU、内存与性能¶
这条路线围绕一条 Load/Store 展开:指令怎样发出、地址怎样转换、Cache 怎样命中、请求怎样经过 NoC 并最终到达 DDR。
外设与芯片 Bring-up¶
这条路线适合新板点亮。先验证模块生存条件和 MMIO,再逐步增加 IRQ、DMA 与高性能模式。
贯穿全库的五条路径¶
- CPU 读取 DDR:02 → 04 → 03 → 05。
- 网卡接收数据:08 → 06 → 05 → 03 → 07。
- 系统冷启动:01 → 09 → 07 → 03。
- 外设 Runtime PM:08 → 07 → 05 → 09。
- 异构核消息:02 → 03 → 05 → 07 → 11 → 09。
- 性能下降定位:10 → 02/03/05,再回到具体设备。
阅读任何章节时,都可以用四个问题检查理解:访问由谁发起,地址如何解释,数据在哪里发生变化,完成如何通知。答案必须落到具体寄存器、状态或计数器,才算形成可调试的系统模型。