DMA:如果将一串字符串通过串口传送到外设中去,用传统的方法,则CPU将不断的去扫描UTSTAT这个寄存器,在字符发送期间,CPU将不能做任何其他事情。为了解决这个问题,则在诞生了DMA
CPU只需要告诉DMA控制器,目标地址和目的地址就行了,其他事情就直接交由DMA去完成。
DMA控制器控制:
通道数
2440支持4个channel的DMA 通道
请求源
由上图说示,每一个通道支持6个请求源,所谓请求源就是指,哪些支持哪些通信去使用DMA
工作时序
由上图所示可以看出,DMA请求信号响应大约两个时钟周期后,响应信号开始响应,大约响应三个时钟周期后,将DMA正式接管总线
工作模式
请求模式(demand模式):如果DMA完成一次请求信号后,request信号任然有效,DMA就任务这是下一次请求信号,并继续下一次信息传输。
握手模式(handshake模式):DMA完成一次请求后,等待request信号无效,在等待下一次的请求信号有效后,再进行信息传输
DMA 源地址数据寄存器:
作用分析:
用于将告诉DMA 源数据的起始地址是多少,并将该地址写入其中
源地址控制寄存器:
作用分析:
用于决定数据传送通道使用什么通道,和数据源地址增长变化形式。
DMA目的地址数据寄存器:
作用分析:
用于将存放传送数据的目的地起始地址
DMA目的控制寄存器
作用分析:
用于存放目的地址的控制信息
控制字详情:
这里采用APB总线,又因为这里的目的地址就只有UTHX0所以INC为0
DMA控制寄存器(该控制寄存器级别略大):
作用分析:
用于选择DMA源,中断源软件类型还是硬件类型,传输完成后是否继续传输,给定所传输数据的大小
控制字详情:
DMA开关寄存器
作用:用于使能DMA
控制字详情: