OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5680|回复: 9

SDSC卡容量计算部分代码

[复制链接]

15

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-10-15
在线时间
0 小时
发表于 2014-6-12 08:39:58 | 显示全部楼层 |阅读模式
5金钱
你好,版主
在分析了SD实验的基础上,也看了关于SD卡容量的计算的部分资料,目前仍在您的部分计算容量的语句上存在不解,忘回复
代码如下:
        n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2;
        csize = (csd[8] >> 6) + ((u16)csd[7] << 2) + ((u16)(csd[6] & 3) << 10) + 1;
其中&是代表取寄存器相应的位数,但是我怎么算还是算不出来,呵呵
还有这里的+是组合的意思还是纯粹的加法符号

书山有路,悬崖辅路
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-12 13:05:53 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-6-12 15:03:21 | 显示全部楼层
回复【2楼】Badu_Space:
我知道是得到有效数据位,csd[5] & 15取低四位
csd[10] & 128取高一位,,csd[9] & 3取低两位
然后呢,组合起来怎么算
书山有路,悬崖辅路
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-12 18:45:51 | 显示全部楼层
回复【3楼】1045426595:
---------------------------------
上面不是有公式么?加上SD卡V2.0的参考手册就有这个的说明,具体在什么位置就不记得了,可以翻阅一下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
发表于 2014-6-13 13:58:48 | 显示全部楼层
http://www.openedv.com/posts/list/31260.htm  看看我写的
回复

使用道具 举报

15

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-6-13 14:45:31 | 显示全部楼层
回复【5楼】zhao305149619:
---------------------------------
我就是看的你的内容,知道了不少
就是&这个符号,取寄存器的相应的位数,加上前面的计算,我不解
 n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2;
        csize = (csd[8] >> 6) + ((u16)csd[7] << 2) + ((u16)(csd[6] & 3) << 10) + 1;
这一部分,还望告知,非常感谢
书山有路,悬崖辅路
回复

使用道具 举报

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
发表于 2014-6-18 14:56:39 | 显示全部楼层
回复【6楼】1045426595:
---------------------------------
你没有仔细看吧,我上面写的很清楚啊
先讲 C_SIZE,在上图可以看见bit数是12,同时在寄存器的【73:62】,从寄存器最高的127数到【73:62】,所以 C_SIZE的12位分别在接受字节的CSD[6]、CSD[7]、CSD[8]中,其中占CSD[6]低2位,CSD[7]的8位,CSD[8]的高两位,加在一起正好是12位
回复

使用道具 举报

15

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-6-18 16:54:48 | 显示全部楼层
回复【7楼】zhao305149619:
---------------------------------
那您的意思是那个加号是组合的意思?
书山有路,悬崖辅路
回复

使用道具 举报

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
发表于 2014-6-21 15:30:26 | 显示全部楼层
回复【8楼】1045426595:
---------------------------------
我不知道你为什么会有这个概念,不懂加和组合有什么不同,问你一个问题:0xff00+0x00ff=c_size,这个在你理解的世界里是组合还是加号,如回答的是什么,那么这个程序就是什么
回复

使用道具 举报

15

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-6-24 07:54:54 | 显示全部楼层
回复【9楼】zhao305149619:
---------------------------------
谢谢。懂了
书山有路,悬崖辅路
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 04:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表