STM32H7 SRAM->SDRAM->SD CARD 写入速度极慢

2019-12-12 18:16发布

最近在搞STM32H753的东西, 然后让ST的FAE 帮我们写代码, 他们的硬度工程师告诉我他需要13uS 把512byte的数据从SRAM MDMA传到SDRAM,虽然说SRAM SDRAM共享一个32bit的FMC但是这个速度, 我真的一口血吐在了屏幕上

我能想到的原因可能是他没有用internal SRAM 做buffer, 直传的话需要不停的来回切BUS 和片选,但是我看他给我的示波器图像,传512 byte 数据的时候,SDRAM和SRAM的片选得切了几百次, DMA的buffer不应该这么小吧

还有一个原因就是可能SDRAM需要不停地刷新cell,会把bus抢过去

想问一下各位大佬有没有什么别的看法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
wye11083
1楼-- · 2019-12-13 12:48
sunnylyvoune 发表于 2019-3-23 00:16
我感觉也是,但是他怎么做到512byte 来回切几百次的........

dma每次只能读一个字-你16位sram就要256次,8位sram就要512次。
takashiki
2楼-- · 2019-12-13 17:52
LZ,您知道ST的DMA是什么意思吗?
我没用过这个高级的片子,我只用过F1和F0的,用过了之后,使我对DMA的印象大大改观。DMA从来就没有保证过它的速度,他只是保证了内存(和外设)直接传输而不用经过CPU。但是对于数据直接拷贝来说,比memcpy都慢了不知道多少。
借用编程语言的术语来说,DMA就是提供了一个异步的解决方案,但是要用到同步的情形却用异步来解决,那就是跟自己过不去。
sunnylyvoune
3楼-- · 2019-12-13 18:05
takashiki 发表于 2019-3-23 09:35
LZ,您知道ST的DMA是什么意思吗?
我没用过这个高级的片子,我只用过F1和F0的,用过了之后,使我对DMA的印 ...

对,你说的没错,dma 最大的好处就是不需要cpu 干涉,实际上也是保证速度的一种方式嘛,而且我这个确实需要异步,cpu 还要干其他事情。问题是我不知道st的fae 为什么要这么写,sdram sram 来回切的cost 是相当的可怕的
sunnylyvoune
4楼-- · 2019-12-13 20:03
wye11083 发表于 2019-3-23 07:50
dma每次只能读一个字-你16位sram就要256次,8位sram就要512次。

st 的mdma 我看介绍是可以做mutiple beats 的,最高好像是128beats 但是我一开就挂
wye11083
5楼-- · 2019-12-14 01:13
 精彩回答 2  元偷偷看……

一周热门 更多>