免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1410 | 回复: 0

FATFS mini2440 sd [复制链接]

论坛徽章:
0
发表于 2011-12-21 08:41 |显示全部楼层
1.要用4bit的数据传输,否则的话,在读取数据的时候,一直提示数据异常    
rSDICARG = 0 << 1;                    //Wide 0: 1bit, 1: 4bit
2.在移植FATFS文件系统的时候,FATFS是以sector的序号作为读写的单位的,
而在SD卡中,是以字节的地址作为读写的开始地址的,所以,我们需做如下处理
sector * 0x200
3.由于FATFS是以大端格式来进行字节流的操作的,所以SDIO的设置需要设置成
大端模式。

debug记录:
1.发现初始化失败,其原因是因为 大小端格式
2.发现0扇区的数据读取正确,而读取其他段的时候,发现读取不成功,其原因为
   SDIO的读取首地址是以字节为单位来进行的,而FATFS是以扇区号来进行标识的
   在读取驱动程序中,设置首地址时,需要 sector * 0x200
3.不知道为何
check_fs 函数中,if((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146)
总是判断失效,查看其反汇编源码,发现反汇编出来的代码不正确,将这部分代码剔出来放到
VS2005里面却是正确的,初步认为是编译器问题
但是    
temp = (LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF);
if (temp == 0x544146)    /* Check "FAT" string */
这样就对了,打算换个编译器试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP