DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
1.DMA寄存器映象https://blog.csdn.net/u010280307/article/details/53334985
先看上图中下左侧的偏移地址,偏移地址是相对于DMA1_BASE的相对地址。查表可得DMA1_BASE的实际物理地址是:0x4002 0000 .故我们可以得出这些寄存器的实际地址是什么。实际上我们对寄存器配置的时候也是对这几个寄存器值进行修改。
- DMA_ISR: 0x4002 0000
- DMA_IFCR 0x4002 0004
- DMA_CCR1: 0x4002 0008
- DMA_CNDTR1: 0x4002 000C
- DMA_CPAR1: 0x4002 0010
- DMA_CMAR1: 0x4002 0014
2.寄存器和代码分析
https://blog.csdn.net/qq_38410730/article/details/80270444