一張2g 及 128g sdsdcard f_mount 時 在checc_fs()都印出return 2 (2:Valid BS but not FAT)
想請問我去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:Disk 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 == 0xE9 || (fs->win == 0xEB && fs->win == 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 sdsdcardf_mount 時 在checc_fs()都印出return 2 (2:Valid BS but not FAT)
不是應該是return 0retrun 1嗎?
請問這是有啥原因?
2g這張卡可以寫入但128g 寫入失敗 出現error : FR_DISK_ERR
感謝
你的fatfs移植,当前还是这么多问题?
使用这个小软件格式化试试:
SD卡联盟发布的SD/SDHC/SDXC格式化小软件V5.0.1
https://www.armbbs.cn/forum.php? ... id=96181&fromuid=58
(出处: 硬汉嵌入式论坛)
本帖最后由 iriss 于 2023-7-25 17:16 编辑
感謝回覆
後來用格式化設定為exfat
現在要加入DMA, 就移植stmcube產生相關程式到我的實驗程式
想請問在ClockDiv 再沒DMA時我要要設定30才能掛載(clockdiv 要如何決定大小,太小會出現 錯誤:HAL_SD_ERROR_CMD_RSP_TIMEOUT)
但如果加入DMA, ClockDiv應該要可以變小, 但不行
請問這樣是我移植上那邊沒做好 還是有其他原因??感謝
iriss 发表于 2023-7-25 13:51
感謝回覆
後來用格式化設定為exfat
没遇到过这种问题。
页:
[1]