Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141841
  • 博文数量: 30
  • 博客积分: 887
  • 博客等级: 准尉
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-03 19:11
文章分类

全部博文(30)

文章存档

2012年(19)

2011年(1)

2010年(6)

2009年(4)

我的朋友

分类: 嵌入式

2011-05-18 20:00:11

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 */
这样就对了,打算换个编译器试试
阅读(1501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~