stm32F4系列的DMA有一些高级功能,我可以在这里要求澄清吗?
并发流:两个流可以同时传输数据吗?由于允许一个字节传输。如果总线宽度为32位,则可以进行4次并发传输。顺便说一句,STM32的AHB总线的宽度是多少?
FIFO模式:如果无法进行并发传输,我猜这里可以使用FIFO。 FIFO将有助于将数据从低速外设等待到DMA而不占用AHB总线。当准备好一定数量的数据时,数据块将一起发送到内存。我的理解是否正确?
每个流的四字深度32个先进先出存储缓冲器(FIFO)
这是什么意思? FIFO中可以存储多少数据? 4或4 * 32?
突发模式:实际突发模式有什么作用?它在数据表中说可以传输65535个数据。 65535与突发模式之间有什么关系?
双缓冲模式:
双缓冲区类型事务:使用两个双缓冲区传输 内存的内存指针(当DMA正在读/写时) 从/到缓冲区,应用程序可以向/从另一个写入/读取 缓冲)。 -----来自STM32F4的参考手册
我的问题是:在DMA传输期间,AHB总线不适用于Cortex M4,应用程序如何从其他缓冲区读取?
答案 0 :(得分:5)
在做了一些研究之后,我发现了这个,以防有人需要它。
并发流:在一个DMA中不可能。可以同时运行DMA1,DMA2。 例如: F427可以同时执行:
FIFO用于临时存储来自低速设备的数据。当累积了一定数量的数据时,可以发送突发,以节省AHB的资源。由于DMAC使用AHB时,处理器无法使用它。 FIFO具有4 * 32位大小。它可配置为16 * 8位(16 * 0字节)。