啊,我是菜鸟,最近想弄了个驱动是是SD卡的,现在只能支持2G大小的SD,现在有2个问题在这里请教下:1,这个驱动只能读一个分区(如果给他2个分区,后面的无法挂在),呵呵,怎么样让他能读其他分区。2,怎样让他能读4G以上的SD卡:)谢谢大家了
建议看FAT16文件系统,需要修改驱动程序,是文件系统去识别,或者说是文件系统管理SD卡存储资源的方式,难度比较大。
现在资料主要是在 三星,大都是说移植,,但是我这的驱动感觉跟他们不对路,,移植有点问题,恩,想请大虾在
给仔细说说谢谢了
第一步你得要你的SD协议软件支持2.0高容量卡
SD卡有三种:
SD1.0-SD1.1大致相同,SD1.1比SD1.0增加了点命令,例如CMD6
SD2.0标准卡
SD2.0高容量卡
它们的初始化和识别方式有些不一样,具体过程需要查询SD物理层协议文档
2G以上的卡应该是2.0的高容量SD卡,这时候的SD的协议必须按照SD2.0的方式来访问SD。针对2.0高容量卡,读写命令的参数单位是sector,而1.x的SD和2.0的标准卡读写命令的单位是字节。另外它们的初始化方式也不一样。
第二步就是要增加软件对卡上的分区信息进行识别
就是读取MBR信息,把分区的起始点和大小识别出来
第三步就是将不同的分区挂载倒文件系统上,让文件系统对这些分区进行管理
标准来说
fat12最大支持到128M
fat16支持的范围是2M-2G,windows把fat16的cluster扩展到了128个sector,所以windows的fat16也可以管理4G的分区
fat32的支持范围是32M-32G
所以得根据它们能支持的容量来选择相应的文件系统进行管理