embeddev 发表于 2011-11-30 06:11:14

我的fatfs 0.6为什么只支持dbr从物理分区地址0开始的情况,有隐藏分区就不行呢?

如题!有的sd卡物理分区和逻辑分区0扇区都是dbr分区,fatfs运行的很好,现在有的sd卡不是dbr,前面有隐藏分区,fatfs打开文件就报错,不能正常操作,请问修改那个参数使其可以正常操作?虽然知道怎样将卡暴力修改成从物理0扇区dbr,可是这样不好,没有从根本上解决问题。这其实是一个很基本的功能,怎么修改呢?

embeddev 发表于 2011-11-30 09:17:30

d!

embeddev 发表于 2011-11-30 10:54:28

沉得好快,不得不顶!
./emotion/em008.gif

guxingganyue 发表于 2011-11-30 11:25:43

看看这个:

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5096227&bbs_page_no=1&search_mode=3&search_text=guxingganyue&bbs_id=9999

embeddev 发表于 2011-11-30 15:34:50

现在有两块sd卡,一块256m,dbr在物理地址和逻辑地址的0扇区,另一块1g,物理地址不是dbr,现在用暴力的办法是这块卡dbr在0扇区了,不过遇到一些问题,flseek,fwite之后 fread读数据错误,而老卡没问题,请问下是怎么回事? fwrite跟踪进去也没有产生错误~读数据第二次读的时候报错!

hubaixdl 发表于 2011-12-5 15:53:27

可以增加一个OFFSET,用于判断物理地址和逻辑地址。
一:在卡的初始化时增加一个OFFSET
        disk_read(0,MMCRDData,0,1) ;
        ///////////////下面为确定MMC卡的物理地址或逻辑地址
        if (MMCRDData==0xeb)          offset=0;           //offset为地址偏移量
        else offset=MMCRDData+MMCRDData*0x100+MMCRDData*0x10000+MMCRDData*0x1000000;
二:在读写卡时增加
         sector=sector+offset;
LZ可以看一下:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5156424&bbs_id=1037
页: [1]
查看完整版本: 我的fatfs 0.6为什么只支持dbr从物理分区地址0开始的情况,有隐藏分区就不行呢?