请问一下SD卡读写速度能达到那个程度(单块读写 4线式 普通模式(非DMA) 频率25MHz)?我现在写速度25Kb ,读速度100kb.(读2M的东西 需要15S左右,写600K的东西需要22S左右); 请各位大虾不惜赐教啊~~~~~~~~~~~~
呵呵,把你的思路写一下,我现在也在做相关的工作,但是没有像你那样进行过测试。
我可以测试一下给你参考。
你可以大概的测试一下速度啊。我的思路就是(单块读写 4线式 普通模式(非DMA) 频率25MHz)。不知道你的工作在什么方式?
我不知道在这种工作方式下 还能不能进一步的提高速度,现在写卡的速度实在太慢。因为我的文件系统只实现了单块读写,
所以不能实现多块连续写。
我的驱动是自己写的,工作在UCFS文件系统下,不知道 有人有官方的UCFS 文件系统下的SD卡驱动没有?
为什么不用DMA?
文件系统还有Mulit-Block之说吗?你指的文件系统的Multi-Block是什么意思?
用DMA只是改变CPU读取数据的速度,并不能改变SD卡的访问速度。
文件系统这个问题就有点复杂了 ,其实我自己也不是很清楚。还请指教?
DMA不能改变SD卡的读写速度?
那我问你是CPU和SD卡一问一答,有商有量的在那边传输数据,中间CPU再处理个别的事情的情况快。还是交给DMA连续传输快?
你说的方式能够在一定程度上改善软件,不过要看情况了,
如果CPU的主频太低,忙不过来的情况下,会对软件的读写速度有大的影响
不过现在我用的cpu利用率不是很高,能忙过来。所以用DMA的实际意义就不太了。而且我也实现过,没能达到太大的效果。
读写的速度并没有太大的改进。
所以现在我还是想请教一下在(单块读写 4线式 普通模式(非DMA) 频率25MHz)的方式下能够达到的最大读写速度是多大(有效数据量)?有没有人测试过?
你先用示波器检查下你的SD卡时钟是多少,我曾经遇到这个问题,后面改时钟就OK了。如果时钟已经达到10M以上,拿速度是比较快的咯。
你可以拿不加文件系统的程序测下,把所有扇区全部读/写完一遍,看看要多少时间
SD卡最大的速度是25M,你自己先看下自己的时钟是多少嘛。我把时钟改后速度大大提高
还有因为我的时钟最大才达到13M,我没那么多时间去修改,总之速度不会太慢
我现在手头没有示波器,通过寄存器的值计算出来的频率有25Mhz,计算公式是数据文档上提供的标准公式。
速度不会太慢是大概那个速度?还有你用的是什么方式来访问?
请教高手啊~~~~~~~~~~~~~~~
是不是一定要用多块连续读写的方式才能提高速度?
这个我知道,但是我这种方式能达到的最好的效果是什么?如果还能有改进的余地,我就可以不修改文件系统了。
我不清楚你的文件系统是如何设计的,但就我目前所用的文件系统还没有Block的概念。
SD卡的Multi-Block传输纯粹是SD驱动的一个部分而已。
LZ能介绍一下你文件系统现在的Single-Block是个什么样的东西吗?