前言
DMA是实现数据高速在外设寄存器与存储器之间或者存储器与存储器之间传输数据提供了高效的方法。它在传输的过程中是不需要通过CPU的,相当于就是电脑里面的这个闪存。
一、DMA功能框图
这个控制器,独立于内核,属于一个单独的外设,相对而言结构比较简单。他的主要作用就是不用通过这个CPU而将数据从一个地方搬运到另外一个地方。而就能够将我们的CPU解放出来。
我们知道DMA传输数据的方向有三个:从外设到存储器,从存储器到外设,从存储器到存储器。具体的方向DMA_CCR位4DIR配置:0表示从外设到存储器,1表示从存储器到外设。这里面涉及到的外设地址由DMA_CPAR配置,存储器地址由 DMA_CMAR配置。
如果外设要想通过DMA来传输数据,必须先给DMA控制器发送DMA请求,DMA收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且 DMA 控制器收到应答信号之后,就会启动DMA的传输,直到传输完毕。
当然,这个里面也是会有这个优先级问题。
二、DMA数据配置
这个数据方面的配置就是一个关于DMA的结构体了,这个里面会有大量的相关方面的代码角度的设定了。
三、关于储存器
存储器是用来存储程序代码和数据的部件,存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。在计算机中易失性存储器最典型的代表是内存,非易失性存储器的代表则是硬盘。
关注我,持续了解行业知识;如果本文让你有所收获,期待你的点赞。
如果想要获取相关知识资料,请扫码关注微信公众号: