linux sd卡读写出错,linux系统SD卡读写问题

请教有过linux系统SD卡读写经验的前辈。

我的项目是对FPGA上的SD卡部分做测试,在测试过程中发现在对SD卡所有领域进行读写操作时

1、bus width 选择1-bit的速度4-bit是差不多的,这与我预想的不同,想知道问题出在哪里?(理论上4bit 速度应该是1-bit的4倍,至少也要比1bit快很多)

SD卡设置:SD总线模式 ,4-bit,single-block,非DMA

软件用的是:DS-5 debug

测得写速度:17KByte/sec

读速度比写速度快很多,这里就忽略了。

PS:  用示波器检测到SD卡 4bit 时,4位数据线均有波形,说明确实是4位都在传数据了。

2、起初猜测是不是时钟频率的问题

SD卡 CLK频率开始时设置为50Mhz,后来改为12.5Mhz  发现速度还是没变(用示波器检测到CLK频率确实改变了)

请问这是为什么?是程序哪里设置出了问题吗?

3、还尝试过更换SD卡,最开始用的是SDHC卡,后来了个板子用的microSDHC卡

卡速度也是class4,class10都有,然而速度都并没有变。

PPS:本菜鸟在SD卡协议中看到一个地觉得有点关系,协议中提到:

{Some cards may require long and unpredictable times to write a block of data. After receiving a block of data and completing the CRC check, the card will begin writing and hold the DAT0 line low if its write buffer is full and unable to accept new data from a new WRITE_BLOCK command.

(有些卡可能会需要很长且不可预料的时间去写一个block的数据。在接收了一个block的数据并完成

CRC check 后,若 write buffer 已满,SD卡会持续写操作并使DAT0保持低电平,不能接收新的WRITE_BLOCK 命令。)}

这个是不是跟写速度很慢有关系呢?buffer这个问题怎么解决呢?清除或者更改buffer size?

PPPS:已经在资料中了解到multiple block写入会比single要快,DMA模式比非DMA要快。

我的问题主要是为什么1bit 4bit 写速度是一样的,不是单纯的想提高写速度~

坐等解答!本菜鸟在网上能搜的不能搜到的地方都搜过了。看过 有人的问题跟我的一毛一样。然而并没人有回答。

今天将class 10  和class 4 的速度重新测了一下,发现class 10  比class 4  稍微快了一些。

速度(包括读写):class 4  183KByte/sec

class 10  240KByte/sec

好吧 我只是顶下帖子。

我在测速度的时候有两种方法,一种是online 用DS-5 debug  另一种是把程序写进SD卡里,在linux终端测试

发现终端的速度比online快好多。2楼就是用终端的速度。

下午的时候测了一下只读和只写,发现速度是一样的,都是240KB/sec,跟读写速度一样快!我要疯了。

唔,之前程序出了问题,所以读和写的速度都不太对,现在测出来读大概3MB/sec ,写大概700KB/sec。

1bit,4bit,速度还是没啥差别。

求大神指点!

唉 小编问一下数码管的扫描频率是多少的?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值