原子哥,我参照你的测试代码,
http://www.openedv.com/thread-94284-1-25.html,分别移植到STM32F103的板子和STM32F407的板子上测试了,STM32F407的SD驱动也是用的原子的,测试用的卡是C10的,同一张卡。每次写入字节数4096。
编译环境采用IAR,STM32F407的板子上测试,速度229k/s,太慢了,与原子哥的测试结果相差太大。底层SD卡驱动没问题,测试过多块写速度达到4M/s,单块写速度250k/s。
找了几天的原因,都发现不了问题。最后将FATFS写输出的块大小打印出来,发现FATFS输出块写是1和7交替出现。
而STM32F103的板子编译环境采用KEIL5, FATFS及上层程序都相同,FATFS输出的块写数基本都是8个,速度达到1.1M/s,所以他的速度明显高于STM32F407,
分析得到的: 上层程序基本没变,移植到STM32F407后,仅改变了编译环境,由KEIL换成了IAR,怎么FATFS输出的块写大小就变了呢?
原子哥,帮我分析下原因,万分感激!
keil下面测试正常,IAR下测试不正常。
找找安福来的例程看下,安福来貌似有IAR的代码。
一周热门 更多>