linux系统SD卡读写问题

2019-07-15 23:41发布

请教有过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 写速度是一样的,不是单纯的想提高写速度~
坐等解答!本菜鸟在网上能搜的不能搜到的地方都搜过了。。看过 有人的问题跟我的一毛一样。。然而并没人有回答。。




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
安静的捕手
1楼-- · 2019-07-16 05:12
 精彩回答 2  元偷偷看……
安静的捕手
2楼-- · 2019-07-16 07:16
我在测速度的时候有两种方法,一种是online 用DS-5 debug  另一种是把程序写进SD卡里,在linux终端测试
发现终端的速度比online快好多。。2楼就是用终端的速度。

下午的时候测了一下只读和只写,发现速度是一样的,都是240KB/sec,跟读写速度一样快!!我要疯了。。
安静的捕手
3楼-- · 2019-07-16 09:45
唔,之前程序出了问题,所以读和写的速度都不太对,现在测出来读大概3MB/sec ,写大概700KB/sec。
1bit,4bit,速度还是没啥差别。。

求大神指点!!
liwuen123
4楼-- · 2019-07-16 14:38
唉 楼主问一下数码管的扫描频率是多少的?

一周热门 更多>