早上好,
我们使用一个STM32H7来获取简单的3个ADC通道16位@5 5MSPS,并将数据存储在外部的eMMC中。所有的东西都是无缝的,如下所示:3个从SPI到内部触发器/触发器缓冲器;3个从SPI到内部触发器/触发器缓冲器;MDMA将数据交织到2个触发器eMMC缓冲区;我们有一些由eMMC引入的意外等待时间,需要在内部缓冲比预期更多的数据,并且由于我们没有足够的内部RAM在eMMC等待期间缓冲(并且不能在eMMC上添加外部RAM,或者在Quad-SPI上添加nvSRAM,.由于集成方面的限制),我们考虑使用带有内部闪存的MDMA暂时缓冲数据。这是个坏主意吗?STM32H7上的FLASH被分割成两个块,第一个可以用于程序内存(所以在DMA访问期间没有冲突和处理器停止),并且有两个AXI控制器,MDMA也是AXI peripheral...Maybe过慢?你们有人试过这个吗?
当我们阅读参考手册(第13章: MDMA控制器(MDMA))时:
主直接存储器访问(MDMA)用于提供存储器和存储器之间或外围设备与存储器之间的高速数据传输。数据可以由MDMA快速移动,而无需任何CPU操作。这使得CPU资源可以用于其他操作。
但MDMA可能只能将数据从AXI移动到AHB或AHB到AXI,而不能将AXI移动到AXI?
代我问好,克莱门特
发布于 2019-03-15 12:32:28
看看数据表,我不认为内部闪光灯能胜任这项任务。

因此,写266位(32 bytes+ECC)需要100到200微秒.它大约是2.66Mbit/s,远低于您的输入数据速率。然后,闪存扇区必须在重用之前被擦除,这需要128个KByte块几秒的时间。最重要的是,您可以预期闪存在仅仅10000次写周期后就会开始磨损。
发布于 2019-03-16 09:24:16
将数据保存到SRAM,然后您可以实际编程闪存。如果您需要存储大量数据,则需要外部的S(D)RAM。
https://stackoverflow.com/questions/55178589
复制相似问题