2# 我是土匪
谢谢关注, 我把 SD 卡格式化成 FAT32 (用电脑格式化的),我也不确定是不是底层的问题,但是第一次调用底层的读一个 Block 的时候能够通过啊!就是在调用第二次的时候通不过了,返回的是错误!现在的问题就变成了 FILE_RW_ERROR, 就是有点想不明白, 它第一次能够调用成功, 第二次就通不过了!就是下面这个在调用disk_read的时候通不过!
if (sector)
{
if (disk_read(fs->drive, fs->win, sector, 1) != RES_OK)
return FALSE;
fs->winsect = sector;
}
但是在以下几个disk_read的调用能够通过!
if (disk_read(fs->drive, fs->win, sect, 1) != RES_OK) /* Load boot record*/
return 2;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */
return 2;
if (!memcmp(&fs->win[BS_FilSysType], "FAT", 3)) /* Check FAT signature */
return 0;
if (!memcmp(&fs->win[BS_FilSysType32], "FAT32", 5) && !(fs->win[BPB_ExtFlags] & 0x80))
return 0;
就是不知道为什么,还望指点!
|