📘 DMA · 内存管理实战
🎯 30章 从入门到项目
📚
30 章节
⚡
硬件 · 驱动 · 系统
🧩
友好色系
01
DMA基础概念
什么是DMA
工作原理
与CPU对比
优缺点
02
DMA硬件架构
控制器内部结构
通道与请求线
地址寄存器
传输计数器
03
DMA传输类型
内存到内存
内存到外设
外设到内存
外设到外设
04
DMA传输模式
单次传输
块传输
请求传输
链式(Scatter-Gather)
05
DMA配置流程
初始化控制器
配置参数
启动传输
等待完成/错误处理
06
DMA描述符与链表
描述符结构
链表构建
硬件自动加载
循环描述符链
07
DMA中断处理
传输完成中断
错误中断
半传输中断
优先级与嵌套
08
DMA与缓存一致性
CPU缓存冲突
Cache Coherency
硬件一致性
软件刷新策略
09
DMA性能分析
传输带宽计算
延迟分析
通道优先级影响
多通道并发
10
DMA驱动开发基础
Linux DMA引擎
设备树绑定
申请DMA通道
映射缓冲区
11
DMA驱动开发进阶
异步传输回调
DMA Pool管理
SG列表操作
同步/异步API
12
DMA与内存管理基础
物理/虚拟内存
页框与页表
Buddy/Slab
DMA内存区域
13
DMA内存分配
一致性映射
流式映射
dma_map_single
SG映射
14
DMA内存池
dma_pool_create
dma_pool_alloc
dma_pool_free
池化管理优势
15
DMA与IOMMU/SMMU
IOMMU工作原理
设备地址翻译
SMMU协同
绕过IOMMU场景
16
DMA与原子操作
原子DMA操作
spinlock配合
DMA与RCU
无锁队列设计
17
DMA与环形缓冲区
环形缓冲区原理
DMA写入环形buf
生产者消费者
空满判断
18
DMA与音频子系统
音频DMA引擎
ALSA DMA操作
周期中断双缓冲
低延迟音频
19
DMA与视频子系统
V4L2 DMA操作
帧缓冲管理
显示控制器DMA
视频缩放DMA
20
DMA与网络子系统
NAPI与DMA
网络DMA引擎
TCP卸载与DMA
零拷贝网络
21
DMA与存储子系统
NVMe与DMA
块设备DMA操作
IO调度与DMA
文件系统DMA优化
22
DMA与GPU
GPU DMA引擎
显存系统内存传输
纹理上传DMA
CUDA与DMA
23
DMA与FPGA
FPGA DMA IP核
AXI DMA协议
FPGA CPU共享内存
PCIe DMA传输
24
DMA调试与性能调优
perf分析DMA
ftrace跟踪
dmatest工具
常见性能瓶颈
25
DMA错误处理
传输超时
总线错误
描述符错误
内存越界与恢复
26
DMA安全与隔离
DMA攻击原理
IOMMU防护
可信执行环境
安全DMA设计
27
DMA在RTOS中的应用
FreeRTOS与DMA
实时性要求
DMA与任务调度
RTOS驱动
28
DMA在Linux内核实现
dmaengine架构
dma_slave_config
dma_async_tx_desc
驱动注册流程
29
DMA多核与多处理器
多核通道分配
NUMA与DMA
跨处理器传输
一致性协议
30
DMA实战项目
高速数据采集
音频播放器
网络数据包转发
项目总结与展望