STM32的DMA中FIFO和突发模式理解
学习stm32DMA时遇到了FIFO和突发配置的疑惑,看手册完全云里雾里,节拍是什么等等都不清楚。
首先理解什么是突发,突发传输就是两个设备进行数据传输,一个设备发数据,一个设备接收数据,或者像是CPU到内存进行读取数据,肯定是每读取一个字节,读取指针就会自增一次,如果每次读一个字节,还要到程序里面执行一个指针自增指令的话,那CPU岂不是时时刻刻都在读取内存然后指针自增指令执行,那也太蠢了,CPU利用率太低了,所以出现了突发模式,我设定为CPU进行读内存,我指定一个宽度,每次读取都读这一个宽度的数据,比如为128B,每次读取,指针会自己增加,读取满了这128B再告诉CPU读了一次,那么这个128B就是一次突发的大小,只是进行简单的封装,突发不管每次传输多少,突发规定的是指针每次增加的单位宽度是多少,就像上面的我读取内存,规定每次读取1280B,那么一次读取就是10次突发,相当于读写指针按每次自增128进行了10次。突发就是这么个意思,是为了方便传输时指针自增进行的优化操作,将每次指针自增由指令控制,封装为硬件突发模式进行。
|
———————————————— 版权声明:本文为CSDN博主「闲鱼蜡蕉的摸鱼时光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xianyulajiao/article/details/128287672