打印

读SD卡严重问题

[复制链接]
1548|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsoyy|  楼主 | 2008-11-27 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我采用SPI方式读取SD卡中的TXT文档,采用按名提取的形式,读取结果虽然正确,但是速度150K用掉2分钟时间,实在无法忍受,我提高了SPI分频竟然丝毫无改善,手上午示波器无法观察波形频率。

目前我采用按字节方式是读取,还有卡块方式,我发现卡块方式最底层也是SPI字节方式,不知道采用这种方式速度是否有显著提升,此外我仅仅读取SD文件,按名提取,如果用卡块,我如何能根据文件名获取我的文件的卡块位置?

相关帖子

沙发
kang1209| | 2008-11-27 10:01 | 只看该作者

建议开个大点的buffer, 例如512,1024,2048,读取会快很多!

512的整倍数

使用特权

评论回复
板凳
dsoyy|  楼主 | 2008-11-27 10:22 | 只看该作者

感谢楼上

我这样做了,数组大小512000,足够大了,还是依旧。
调用ZLG软件包的
OSFileSeek(FHandle, count, SEEK_CUR);    // 移动文件读写位置
            
             sd_read_num =OSFileRead(gImage_pic_sd/*rcv_buf*/, READNUM, FHandle);//读取文件
             
             flag_end = OSFileEof(FHandle);  //判断文件是否到读写到文件尾
这样来实现读取整个文件。

使用特权

评论回复
地板
deeploves| | 2008-11-27 15:23 | 只看该作者

不去研究底层驱动来提升速度,靠改变应用怎么可能?

使用特权

评论回复
5
l0p0c| | 2008-11-27 15:30 | 只看该作者

我以前也做过SD,不过是读取字节,也是按块。

若真要提速还是多多研究啊……

使用特权

评论回复
6
古道热肠| | 2008-11-27 16:03 | 只看该作者

要想速度快,底层要优化

有些样板程序结构化良好,但读写速度大打折扣,如果仅仅为追求速度,参考用AVR作MP3时读SD卡的源码,网上很好找,速度还可以,

使用特权

评论回复
7
dsoyy|  楼主 | 2008-11-28 13:11 | 只看该作者

谢谢

昨天下午改成卡块读取,提高到63.4K用了6秒。
循环操作单块和操作多块效率竟然一样。。。

ZLG技术支持说可以达到890K/S,这样可以满足我的需求了。但我的还差很远,此外操作卡快读取PC存入SD的数据要判断我的文件在SD中占用哪些卡块。。。
这个也比较麻烦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝