使用STM32H723ZG通过FMC操作外部SDRAM W9825G6KH时, 数据宽度16bit, 总线频率108M, FMC操作时序如图 ,SDRAM CAS值为2,从0XC0000000到0xC1FFFFFF遍历写入并读出,通过TIM2计时,以字节写入时,写时间0.16秒,读时间0.73秒,以半字节操作时,写时间0.09秒,读时间0.71秒。请问为什么读比写要慢得多? 下面是写入和读出代码,系统主频550M,逻辑操作耗时应该基本可以忽略 for(temp=0; temp<SDRAM_TEST_SIZE; temp+=4) { (unsigned int)(SDRAM_TEST_ADDRESS_START+temp) = temp; } for(temp=0; temp<SDRAM_TEST_SIZE; temp+=4) //读出并且比对预期写入值,如果不相符输出错误 { if(((unsigned int)(SDRAM_TEST_ADDRESS_START+temp)) != temp) { printf("find err on 0x%x\n\r", (SDRAM_TEST_ADDRESS_START+temp)); err++; } }
|
|