OpenEdv-开源电子网

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

有关大容量SD卡扇区的问题

[复制链接]

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
发表于 2014-5-25 14:50:13 | 显示全部楼层 |阅读模式
5金钱
SD卡的扇区是由几个块组成的,V2.0版本中有这样的一句话:The High Capacity SD Memory Card only supports 512-byte block length.这里说大容量的SD的块的大小是512字节。我怎么在V2.0协议中没有找到扇区的大小也是512字节的呢?????原子哥的代码求扇区的数目的时候,就是使用扇区是512字节的?????
//获取SD卡的总扇区数(扇区数)   
//返回值:0: 取容量出错 
//       其他:SD卡的容量(扇区数/512字节)
//每扇区的字节数必为512,因为如果不是512,则初始化不能通过.  
u32 SD_GetSectorCount(void)
{
    u8 csd[16];
    u32 Capacity;  
    u8 n;
    u16 csize;      
    //取CSD信息,如果期间出错,返回0
    if(SD_GetCSD(csd)!=0) return 0;    
    //如果为SDHC卡,按照下面方式计算
    if((csd[0]&0xC0)==0x40) //V2.00的卡
    {
          csize = csd[9] + ((u16)csd[8] << 8) + 1;
          Capacity = (u32)csize << 10;//得到扇区数   
    }else//V1.XX的卡
    {
            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;
           Capacity= (u32)csize << (n - 9);//得到扇区数   
    }
    return Capacity;
}
红色部分应该是这样得到的:扇区的数目=(C_SIZE+1)*512KByte/512Byte=((C_SIZE+1)*1024*512)Byte/512Byte=(C_SIZE+1)*1024=(C_SIZE+1)<<10
不知道一个扇区的大小为啥是512Byte,在协议中没有找到相关的解析、、、、、

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-25 17:42:57 | 显示全部楼层
V2.0协议没说到么?你看的是哪份手册?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
 楼主| 发表于 2014-5-25 21:18:16 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
SD卡2.0协议。。。是原子哥板子配着来的、、、
回复

使用道具 举报

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
 楼主| 发表于 2014-5-25 22:51:30 | 显示全部楼层
回复【3楼】STM32初学菜鸟:
---------------------------------
觉得最好红色的那部分得到的是数据块的块数,不是扇区的数目吧?也可能是数据块和扇区大小都是512Bytes,那么扇区就是由一个数据块组成,但是没有找到相关扇区和数据块之间的关系。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-26 00:23:19 | 显示全部楼层
回复【4楼】STM32初学菜鸟:
---------------------------------
数据块不就是扇区么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
 楼主| 发表于 2014-5-26 08:49:59 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,不是说SD卡的扇区由几个数据块组成的吗??
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-26 20:54:44 | 显示全部楼层
回复【6楼】STM32初学菜鸟:
---------------------------------
一个扇区一般都是512字节,怎么还有比扇区更小的?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
 楼主| 发表于 2014-5-27 11:54:06 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
就是说操作的最小单元是扇区。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 18:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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