zjcszn 发表于 2024-2-13 23:10:46

h743 qspi dma方式读取超过65536字节时出错

用HAL_QSPI_Receive_Dma读flash时,如果读取的字节数超过65536,耗时明显变长,且读出的数据也不对,但是看hal库手册和w25q64的Datasheet,并未找到有关这方面的限制,有大佬遇到过这个问题吗?

eric2013 发表于 2024-2-14 00:38:53

这个是DMA的限制,你用的MDMA还是通用DMA,他们支持的最大传输略有却别。

另外读取操作,推荐使用内存映射模式,配合Cache,速度和使用MDMA是一样的。

zjcszn 发表于 2024-2-14 01:35:58

eric2013 发表于 2024-2-14 00:38
这个是DMA的限制,你用的MDMA还是通用DMA,他们支持的最大传输略有却别。

另外读取操作,推荐使用内存映 ...

用的是mdma

eric2013 发表于 2024-2-14 13:46:47

zjcszn 发表于 2024-2-14 01:35
用的是mdma
QSPI MDMA读限制最大65536字节


fyyxxm 发表于 2024-2-19 13:46:36

DMA的长度最大就是uint16....

zjcszn 发表于 2024-2-20 21:35:04

eric2013 发表于 2024-2-14 13:46
QSPI MDMA读限制最大65536字节

大佬,bsp手册里写的我看到了,但是这个65536的限制是从哪里得出来的呢?还有就是mdma有字节对齐要求嘛?我在用mdma时发现如果buffer的地址不是32字节对齐的话,数据会有丢失

eric2013 发表于 2024-2-21 09:42:19

zjcszn 发表于 2024-2-20 21:35
大佬,bsp手册里写的我看到了,但是这个65536的限制是从哪里得出来的呢?还有就是mdma有字节对齐要求嘛? ...

1、这个用的是MDMA_BUFFER_TRANSFER模式,最大65536字节。
个函数HAL_MDMA_Start_IT,里面有注释说明

2、对,DMA方式要做字节对齐处理。
页: [1]
查看完整版本: h743 qspi dma方式读取超过65536字节时出错