|
想請問
我去ff.c 看
/*-----------------------------------------------------------------------*/
/* Load a sector and check if it is an FAT boot sector */
/*-----------------------------------------------------------------------*/
static
BYTE check_fs ( /* 0:FAT, 1:exFAT, 2:Valid BS but not FAT, 3:Not a BS, 4 isk error */
FATFS* fs, /* File system object */
DWORD sect /* Sector# (lba) to load and check if it is an FAT-VBR or not */
)
{
fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */
if (move_window(fs, sect) != FR_OK) {db_printf(DB_ALWAYS,"ireturn 4\n");return 4;} /* Load boot record */
if (ld_word(fs->win + BS_55AA) != 0xAA55) {db_printf(DB_ALWAYS,"return 3\n"); return 3;} /* Check boot record signature (always placed here even if the sector size is >512) */
if (fs->win[BS_JmpBoot] == 0xE9 || (fs->win[BS_JmpBoot] == 0xEB && fs->win[BS_JmpBoot + 2] == 0x90)) {
if ((ld_dword(fs->win + BS_FilSysType) & 0xFFFFFF) == 0x544146) return 0; /* Check "FAT" string */
if (ld_dword(fs->win + BS_FilSysType32) == 0x33544146) return 0; /* Check "FAT3" string */
}
#if _FS_EXFAT
if (!mem_cmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) {db_printf(DB_ALWAYS,"return 1\n");return 1;}
#endif
db_printf(DB_ALWAYS," return 2\n");
return 2;
}
用了一張2g 及 128g sdsdcard f_mount 時 在checc_fs()都印出return 2 (2:Valid BS but not FAT)
不是應該是return 0 retrun 1嗎?
請問這是有啥原因?
2g這張卡可以寫入但128g 寫入失敗 出現error : FR_DISK_ERR
感謝
|
|