DMA
- 每个通道都支持软件触发和特定硬件触发
- 软件触发:负责存储器-存储器转运
- 硬件触发:负责特定外设的存储器-存储器转运,因为某些外设必须在外设处理完之后快速触发再转运,因此无法使用软件触发
- 注:每个外设的硬件触发通道是不同的

-
DMA外设寄存器:站点A,可以填外设地址(M2M=0)/存储器地址(M2M=1)
-
DMA存储器:站点B,可以填外设地址/存储器地址
-
方向:正向/反向
-
传输计数器:指定传输的DMA块的大小
-
DMA触发与重装
-
硬件触发(M2M=0)+非自动重装:外设一次性触发,转运一次数据块
- 传输时机由外设决定
- 对于每一次传输:当DMA宽度=一次传输的数据大小>总线宽度,将采用突发传输;反之,则将采用同时传输
-
软件触发(M2M=1)+非自动重装:软件一次性触发,转运一次数据块
- 传输时机由CPU决定,其余同上
-
硬件触发(M2M=0)+自动重装:外设周期性触发,转运多次数据块
- 传输时机由外设决定,其余同上
- 转运一次后会将DMA使能和地址调整好,然后等待下一次硬件触发时传输(省去初始化DMA的时间)
-
DMA中断:在传输全满/半满/错误时可以产生DMA中断
-
DMA外设通道:一个外设只能占用一个DMA通道
