DMA(以F1进行介绍)
DMA介绍
DMA,Direct Memory Acess,即直接存储器访问。DMA传输,将数据从一个地址空间复制到另一个地址空间(数据搬运工)。
如:内存到外设
外设到内存
内存到内存
注意:方向是固定的。
DMA传输无需CPU直接控制传输,也没有中断控制方式那样保留现场和恢复现场过程。是控制硬件为RAM和IO设备开辟了一条直接传输数据的通道,使得CPU的效率大大提高。
需要注意的事:
1、DMA请求:
DMA传输数据,先向DMA控制器发送请求。
2、DMA通道:
不同外设向DMA的不同通道发送请求,DMA有7个通道,DMA有5个通道。
3、DMA优先级:
多个DMA通道同时发送请求时,就有先后响应处理的顺序问题,这个由仲裁器管理。仲裁器管理DMA通道请求分为两个阶段:软件阶段(1)、硬件阶段(2)
DMA处理过程
DMA优先级
仲裁器管理DMA通道请求分为两个阶段:软件阶段(1)、硬件阶段(2)
第一个阶段(软件阶段):每个通道的优先级可在DMA_CCRx寄存器中设置,有四个等级:最高、高、中和低优先级。
第二个阶段(硬件阶段):如果有两个请求有相同软件优先级,较低编号的通道比较高编号的通道有较高的优先级。
(大容量芯片中,DMA1控制器拥有高于DMA2控制器的优先级)