|
本帖最后由 treasafetchbtz9 于 2021-11-17 21:08 编辑
我在两个平台上进行了双区Flash实验,分别是NUCLEO-H743和NUCLEO-L496,为了避免因为走线,信号问题导致性能下降,我做了板子,板子上只有2个同型号(W25Q64)的Flash.
程序基本借鉴官方代码,只是开启了双区Flash并打开MemoryMap模式(如果不打开读取性能更差).- QSPIHandle.Init.DualFlash = QSPI_DUALFLASH_ENABLE;
复制代码 测试代码:
- time_start = HAL_GetTick();
-
- // 1GB 数据传输
- for(uint32_t i =0;i < (1024 * 512) ;i++){
- memcpy(&rData,(void *)0x90000000,0x800);
- }
-
- time_end = HAL_GetTick();
- time_diff = time_end - time_start;
复制代码
当然,测试时候试过以0x400,0x800,0x1000三种不同大小,但是其实速度差距不大.
NUCLEO-H743下测得: (主频208MHz,QSPI时钟104MHz)
双区Flash复制:96MB/s
单区Flash复制:54MB/s
NUCLEO-L496下测得: (主频80MHz,QSPI时钟80MHz)
双区Flash复制:68MB/s
单区Flash复制:37MB/s
明显不管是54*2>96,还是37*2>68,双区同时使用,都不能发挥翻倍的速度,就算这个是理论速度,但是这个差距也存在不少.
|
|