工作模式:FIFO模式与直接模式
FIFO模式下,可以将要传输的多个数据(或字节)累计存储在FIFO缓冲器中,然后在FIFO缓冲器中设置存储阈值,当到达阈值时,FIFO会自动把所有存储的数据一次性的发送到目标地址;
直接模式下,DMA直接进行数据从源地址到目的地址的传输,对于外设的传输,因为外设内部一般也有FIFO,所以传输的数据可以被直接存储在外设的FIFO中。
2. 传输模式:单次传输与突发传输
单次传输模式下,一次操作(软件)只能传输一次(一次可以理解为一个节拍,如一个字节)
突发传输模式下,一次操作可以传输多次,如4次,8次,16次
三. 寻址模式:
a. 增量寻址:发送完数据后,继续发送下一个地址的数据,配合突出传输模式
b. 非增量寻址:发送完数据后,如果想要继续发送数据,需要更具软件配置的发送下一个数据的地址,再进行数据的传输。
四. DMA的双面性特点:
对于CPU,DMA是外设
对于外设,DMA是控制器
五. 使用DMA的原因:
a. 把比较固定的任务让DMA来做,可以减轻CPU负担,提高系统的效率
b. DMA具有一般CPU没有的高效操作,提高系统的吞吐率
六. 基于ARM Cortex M3的SOC DMA系统架构
系统有两个DMA;
每个DMA有两个端口,作为Master,对外设,Mem控制。同时作为Slave,CPU可以通过BUS对DMA控制,
其中一个DMA 2,有两个端口均连接至BUS MATRIX上,DMA1 仅有一个端口连接至BUS MATRIX;
对于两个DMA,均可以连接至AHB-APB Bridge
DMA0,端口并没有连接至AHB/APB上,而且由BUS Matrix 连接至存储器中,并且有一路端口专用于AHB-APB 2上。