做过SD卡的进来一起探讨一下SD卡读卡速度的问题

[复制链接]
查看11 | 回复10 | 2021-1-27 07:16:57 | 显示全部楼层 |阅读模式
小弟最近在S3C2410+linux2.6.13的环境下,移植成功了SD卡驱动,可以成功挂载SD卡,但是向SD卡中读-写-比较数据速度比较慢,SD卡的控制模式采用SD模式,是直接占用CPU去读写数据,我预计改为由DMA去传输数据,速度会快些,不知这样的思路可否正确,还有没有别的影响速度的因素?比如频率?修改了驱动为DMA传送数据后,挂载驱动后,出现如下提示:
[root@Armzone/]#insmods3c2440mci.ko
Usings3c2440mci.ko
mmci-s3c2410:probe:mappedsdi_base=c4b80000irq=37irq_cd=60dma=0dmabuf_l=ff
c29000dmabuf_p=33b00000.
mmci-s3c2410:initialisationdone.
[root@Armzone/]#MMC:sd_app_op_condtimedout.ProbablynoSD-Cardhere.
mmcblk0:mmc0:00011019392KiB
mmcblk0:(在这里成功的话应该有个“p1”,不知道这个P1是代码在那里创建的)
程序运行到这里后就死机了,不知道问题出在那里,尝试用printk追踪代码,但是没追踪到?
没有修改前,驱动能成功挂载,提示如下:
[root@Armzone/]#insmods3c2440mci.ko
Usings3c2440mci.ko
mmci-s3c2410:probe:mappedsdi_base=c4b80000irq=37irq_cd=60dma=0.
mmci-s3c2410:initialisationdone.
[root@Armzone/]#MMC:sd_app_op_condtimedout.ProbablynoSD-Cardhere.
mmcblk0:mmc0:00011019392KiB
mmcblk0:p1
按ctrl+c退出,就可以挂载SD卡了
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
开发环境是:S3C2440+linux2.6.13
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
linux下驱动不清楚。
不过针对SD卡倒是可以讨论。
你所说的“读写比较速度比较慢”,慢到什么程度测试了吗?有没有用示波器看SD_CLK时钟是多少?2440的SD接口时钟应该可以到20MHz。
还有2440的SD卡控制器设成1bit模式?还是4bit模式?
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
另外不同的SD卡里面的controller也不一样,访问方式不同,读写的速度也不一样,一般用burst连续写的方式比较快,尽量不要跳跃式读写。总之如果要充分体现速度可能要改写一下sd卡驱动,或者写应用程序时候也要注意读写的方式
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
情况是这样的,测试程序已经给定,而且同样的产品已经开发成功,测试程序采用的方式是:对MMC卡写一个数据、读刚写的数据,然后比较两个数据(400个数据)。测试程序里面的程序不给我看,我现在开发的是一个替代老产品的新产品(功能要求一样),他那个测试程序读写老产品要41分钟,我的MMC卡测试程序是54分钟。但是我的是占用CPU去传送数据,改成DMA传送数据,理论上可以提高读卡速度吗?
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
改用DMA,肯定能提高传输速度,提高的程度就跟程序结构和数据组织结构有关系了。
不过,感觉你应该先改一下这里:“但是我的是占用CPU去传送数据”,怎么会占用CPU呢?没有线程吗?
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
内部协议的实现我不太清楚,只是想改成DMA控制。
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
如果不用DMA,是要占用CPU的资源来传输数据的
如果没记错的话。。
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
我也是用2440+LINUX2.6.13开发,但是不知道为什么我的驱动挂不了2G的SD卡?麻烦楼主指点一下,谢谢!
回复

使用道具 举报

千问 | 2021-1-27 07:16:57 | 显示全部楼层
你测试速度的时候是用怎么计时的?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行