DMA

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

image-20260101200206075

  • DMA外设寄存器:站点A,可以填外设地址(M2M=0)/存储器地址(M2M=1)

  • DMA存储器:站点B,可以填外设地址/存储器地址

  • 方向:正向/反向

  • 传输计数器:指定传输的DMA块的大小

  • DMA触发与重装

  • 硬件触发(M2M=0)+非自动重装:外设一次性触发,转运一次数据块

    • 传输时机由外设决定
    • 对于每一次传输:当DMA宽度=一次传输的数据大小>总线宽度,将采用突发传输;反之,则将采用同时传输
  • 软件触发(M2M=1)+非自动重装:软件一次性触发,转运一次数据块

    • 传输时机由CPU决定,其余同上
  • 硬件触发(M2M=0)+自动重装:外设周期性触发,转运多次数据块

    • 传输时机由外设决定,其余同上
    • 转运一次后会将DMA使能和地址调整好,然后等待下一次硬件触发时传输(省去初始化DMA的时间
  • DMA中断:在传输全满/半满/错误时可以产生DMA中断

  • DMA外设通道:一个外设只能占用一个DMA通道

image-20260101203943548