DMA简介
DMA, 全称Direct Memory Access,即直接存储器访问
DMA传输,将数据从一个地址空间复制到另一个地址空间
DMA传输无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高
作用:为CPU减负
内部框图
- DMA请求 DMA传输数据,要先向DMA控制器发送请求
- DMA通道 不同外设向DMA不同的通道发送DMA请求,DMA1有7个通道,DMA2 有5个通道
- DMA优先级 多个DMA通道同时发来请求时,就有先后响应处理的顺序问题,这个 由仲裁器管理 (优先级管理也分软件阶段和硬件阶段)
注意:DMA2仅存在大容量产品和互联型产品
DMA处理过程
DMA1通道
每个通道用来管理来自于一个或多个外设对存储器访问的请求。且都有一个仲裁器,用于处理DMA请求间的优先级。
通道优先级
仲裁器管理DMA通道请求分为两个阶段:软件阶段(1)、硬件阶段(2)
第一阶段(软件阶段):每个通道的优先级可在DMA_CCRx寄存器中设置,有四个等级:最高、高、中和低优先级。
第二阶段设(硬件阶段):如果两个请求有相同软件优先级,较低编号的通道比较高编号的通道有较高的优先级
(大容量芯片中,DMA1控制器拥有高于DMA2控制器的优先级)
注意:多个请求通过逻辑或输入到DMA控制器,只能有一个请求有效