DMA(Direct Memory Access,直接存储器访问)。什么提高cpu效率,什么工作原理都不管,高速传输也不说。
只说两个案例,存储器到存储器的模式 + 存储器到外设的模式 。
从DMA框图上来说,DMA由以下组成:首先是数据流,f429有0~7这8条数据流;接着是通道选择,每条数据流对应0~7这8个通道,数据流与通道选择形成一个表格,具体外设对应固定的流和通道,由查参考手册中的表可得;然后是仲裁器,当外设DMA请求冲突时,由仲裁器规则决定执行对象,这个仲裁器好比分两个层次,先是软件设置优先级(有4个优先级),当两个请求优先级相同时,由硬件决定——编号低的数据流优先于编号高的数据流;最后是FIFO(First In First Out,(这不就是队嘛)。。。),这是32位先进先出的存储器缓冲区。
说下FIFO的模式:直接模式和FIFO模式。直接模式是禁止FIFO模式下的默认模式,在这种模式下,初始化DMA之后,源的数据直接进入FIFO缓冲区,DMA请求一来就开始传输数据。在这种模式下,源与目标数据宽度必须相同,而且数据流只能生成单次传输,手册中说由硬件强制配置。(这边得提一下一个问题,中文参考手册在存储器到存储器的模式下有一个注意点:使用存储器到存储器的模式时,不允许循环模式和直接模式。但是,在