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) |