DMA

dzw9 / 2023-05-16 / 原文

Direct Memory Access 直接内存访问

0

是CPU的slave,是外设和内存的master,
存储器之间通过FIFO进行数据搬移

1.1 工作模式

1)正常传输模式:配置后只传输一次,需要重新配置
2)循环模式:一直传送除非关闭,适于数据流
3)双缓冲模式:当第一片存储器传输完成自动切换到第二片并不断切换
一般用于外设和存储器之间,信号的编解码输出、视频、音频连续输出

1.2 流控制

控制数据流的传输
软件流:通过软件配置来结束传输
外设流:需要外设产生特定的结束信号,一般外设不具有流能力
DMA流控制:传输固定数量,可以控制

2.1 设计规格

  • 1个32位AHB Master interface
  • 1个32位AHB Slave interface
  • 4个独立可配置的通道,固定优先级仲裁
  • 支持外设与存储器之间的传输
  • 可编程的数据最大为1024
    AHB只支持基本的单次传输

2.2 寄存器功能

12个寄存器,每个通道三个寄存器

  • ch_0_ctrl 偏移地址0X0
    0: ch_0_en 通道0使能
    4: ch_0_target 传输方向,0为memory到外设
    17~8:ch_0_size 传输大小

  • ch_0_sour 0X4-32位源地址

  • ch_0_dest 0X8-32位目的地址