VIP20
本课程属于:022-RV1126驱动开发 嵌入式UI · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

DMA传输驱动开发精讲

📚 共计 30 章节
第1章
DMA基础概念
什么是DMA · DMA与CPU数据搬运的区别 · 在嵌入式系统中的作用
概念入门
第2章
DMA工作原理
四个阶段(请求·响应·传输·结束) · 控制器内部结构
核心结构
第3章
DMA传输模式
单次传输 · 块传输 · 请求传输 · 链式传输 (Scatter-Gather)
模式SG
第4章
DMA与中断的协同
传输完成中断 · 错误中断 · 中断服务程序编写要点
中断协同
第5章
DMA传输方向
内存↔内存 · 内存↔外设 · 外设↔外设
方向外设
第6章
DMA传输粒度
字节 · 半字 · 字 · 突发传输 (Burst)
粒度突发
第7章
DMA描述符与链表
描述符结构体定义 · 链表初始化 · 硬件自动遍历
链表描述符
第8章
DMA循环缓冲区
环形缓冲区设计 · 乒乓缓冲 · 双缓冲切换
环形乒乓
第9章
DMA与Cache一致性
Cache污染 · 内存区域配置 · 刷新与无效化操作
Cache一致性
第10章
DMA与MMU协同
物理/虚拟地址转换 · IOMMU/SMMU · DMA映射API
MMU映射
第11章
DMA控制器寄存器详解
控制/状态/源地址/目的地址/传输计数寄存器
寄存器硬件
第12章
DMA驱动框架 (Linux)
dmaengine子系统 · dma_device · dma_chan结构体
框架Linux
第13章
DMA驱动API (上)
dma_request_channel · prep_slave_sg · submit · issue_pending
APIslave
第14章
DMA驱动API (下)
prep_dma_memcpy · prep_dma_cyclic · 回调函数注册
memcpycyclic
第15章
DMA设备树配置
dma-controller节点 · dma-cells · dma-names/request
设备树DTS
第16章
驱动实战(一) 硬件初始化
硬件初始化 · 中断注册 · 通道申请
实战初始化
第17章
驱动实战(二) 描述符与传输
描述符分配 · 传输配置 · 启动传输
描述符启动
第18章
驱动实战(三) 完成与错误
传输完成回调 · 错误处理 · 超时机制
回调超时
第19章
驱动实战(四) 多通道管理
多通道管理 · 通道复用 · 优先级配置
多通道优先级
第20章
DMA调试技巧
ftrace跟踪 · dmatest模块 · 逻辑分析仪抓取
调试ftrace
第21章
DMA性能优化
传输粒度 · 突发长度 · 描述符预分配 · 内存对齐
优化对齐
第22章
常见问题排查
数据错位 · 传输未完成 · 描述符/中断丢失
排查Bug
第23章
音频驱动中的应用
音频环形缓冲区 · I2S与DMA · 低延迟播放
音频I2S
第24章
视频驱动中的应用
摄像头采集 · 显示控制器 · YUV数据搬运
视频YUV
第25章
存储驱动中的应用
SD/MMC · NAND Flash · eMMC数据读写
存储eMMC
第26章
网络驱动中的应用
网络数据包收发 · 描述符环 · 零拷贝技术
网络零拷贝
第27章
SPI/I2C驱动中的应用
SPI DMA传输 · I2C DMA传输 · 时序配合
SPII2C
第28章
UART驱动中的应用
串口DMA收发 · 流控配合 · 波特率适配
UART串口
第29章
DMA高级特性
硬件自动链接 · 2D DMA · QoS配置
高级2D
第30章
综合实战:STM32MP1
完整流程:需求分析 → 验证,基于STM32MP1平台
实战STM32MP1