DMA 传输,该如何解决

DMA 传输
最近在看DMA时对DMA的一种传输方式不是很理解,希望高手解答。
  1.当从内存到外设传输数据时,是如何进行的?需要在DMA控制器的内部进行数据缓存吗?
  2.进行DMA传输时不是要设置源地址和目的地址吗?那如果是内存到外设,外设的地址该怎样设到DMA的控制器里,这又是一个怎样的地址呢?
  3.从网上看到说,DMA可以通过UART或SPI传递数据,一直搞不明白这是什么意思。

  期望高手的回答


------解决方案--------------------
DMA相当于处理器的一个助手,只负责搬运数据,把源地址和目的地址告诉他就可以了,不需要在DMA里进行数据缓存,从内存到外设,比如你说的UART SPI,在arm处理器里本身就集成了uart和spi,有相对应的寄存器作为他们的数据缓存,这些寄存器的地址就是DMA的目的地址或源地址,DMA从内存源地址copy数据过来放到uart的UTX寄存器里,数据通过硬件自动发送出去