当前位置: 代码迷 >> WinCE >> SD卡有关问题:将CE5的SD驱动Porting到CE6以后,SD卡的访问速度只有CE5的三分之一
  详细解决方案

SD卡有关问题:将CE5的SD驱动Porting到CE6以后,SD卡的访问速度只有CE5的三分之一

热度:152   发布时间:2016-04-28 13:47:07.0
SD卡问题:将CE5的SD驱动Porting到CE6以后,SD卡的访问速度只有CE5的三分之一
SD卡问题:将CE5的SD驱动Porting到CE6以后,SD卡的访问速度只有CE5的三分之一。
在CE5下,读大概是6MB/Sec, 写大概是4.8MB/Sec.
在CE6下,读大概是2.4MB/Sec, 写大概是500KB/Sec.

请问大家遇到过这种情况吗?可能原因是什么?
有Porting到CE6的,或者是工作在CE6下的,请问大家的SD卡访问速度是多少?

还有就是在CE6下的SD卡驱动的MDD部分,BusRequestHandler中添加了一个Physical Buffer,请问这个东东如何使用的?有用过的吗?


------解决方案--------------------
记得当时比较过CE5跟CE6,好象速度是差不多的,具体数字记不太清楚了
------解决方案--------------------
CE6还没跟进,不好乱说。不过从道理上讲不通。

测试吧,先别急着找原因。

在驱动里面,直接向SD写入足够多的数据,看看速度多少。然后系统启动后,向SD写入同样多的数据看速度。

如果驱动里面就不行,而你也不愿意尝试eboot里面去写,那就用示波器看sd的时钟clk是不是19~20MHz,如果不是,那就是SD的寄存器配置问题。
------解决方案--------------------
没使用过CE6,关注。
------解决方案--------------------
SD注册表部分有个BlockTransferSize的值,不知道是不是和这个有关系。

------解决方案--------------------
你WriteFile、ReadFile一次读写的buffer是多大?
------解决方案--------------------
Physical Buffer 把这个开辟的空间加大试试,记得移植USB的时候也有这个速度的问题
------解决方案--------------------
可以试试用googlman以前做了个读写SD卡文件的东西试验下速度。。。
关注下。不了解6.0的文件系统。
------解决方案--------------------
探讨
CE6还没跟进,不好乱说。不过从道理上讲不通。

测试吧,先别急着找原因。

在驱动里面,直接向SD写入足够多的数据,看看速度多少。然后系统启动后,向SD写入同样多的数据看速度。

如果驱动里面就不行,而你也不愿意尝试eboot里面去写,那就用示波器看sd的时钟clk是不是19~20MHz,如果不是,那就是SD的寄存器配置问题。

------解决方案--------------------
CE6.0是SD的读写速度确实要比在CE5.0下的慢些,不过楼主说是1/3...这是怎么得出来的???
速度慢,主要是CE6.0的集成度高些,同时它也支持直接存储DMA,也可以像楼主所说的那样:
MDD部分,BusRequestHandler中添加了一个Physical Buffer...
好像也是出于速度的考虑...

学习学习!!希望有牛人指点!!!
------解决方案--------------------
正在开发wince上的应用,学习一下
------解决方案--------------------
探讨
我们的sd卡读17Mbyte,写8M