iriss 发表于 2023-7-24 11:36:11

一張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

感謝





eric2013 发表于 2023-7-24 11:51:48

你的fatfs移植,当前还是这么多问题?

使用这个小软件格式化试试:

SD卡联盟发布的SD/SDHC/SDXC格式化小软件V5.0.1
https://www.armbbs.cn/forum.php? ... id=96181&fromuid=58
(出处: 硬汉嵌入式论坛)

iriss 发表于 2023-7-25 13:51:08

本帖最后由 iriss 于 2023-7-25 17:16 编辑

感謝回覆
後來用格式化設定為exfat

現在要加入DMA, 就移植stmcube產生相關程式到我的實驗程式

想請問在ClockDiv 再沒DMA時我要要設定30才能掛載(clockdiv 要如何決定大小,太小會出現 錯誤:HAL_SD_ERROR_CMD_RSP_TIMEOUT)
但如果加入DMA, ClockDiv應該要可以變小, 但不行

請問這樣是我移植上那邊沒做好 還是有其他原因??感謝

eric2013 发表于 2023-7-26 07:01:53

iriss 发表于 2023-7-25 13:51
感謝回覆
後來用格式化設定為exfat



没遇到过这种问题。
页: [1]
查看完整版本: 一張2g 及 128g sdsdcard f_mount 時 在checc_fs()都印出return 2 (2:Valid BS but not FAT)