проблема в функции check_fs
Код
static BYTE check_fs ( /* 0:FAT-VBR, 1:Any BR but not FAT, 2:Not a BR, 3:Disk error */
FATFS *fs, /* File system object */
DWORD sect
)
{
if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK)
return 3;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55)
return 2;
if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146)
return 0;
if ((LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF) == 0x544146)
return 0;
return 1;
}
FATFS *fs, /* File system object */
DWORD sect
)
{
if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK)
return 3;
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55)
return 2;
if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146)
return 0;
if ((LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF) == 0x544146)
return 0;
return 1;
}
у меня возвращает 2
Правильно ли я понимаю, что LD_WORD(&fs->win[BS_55AA]) != 0xAA55) это идентификатор, хранящийся по определенному адресу, говорящий все ОК?
у меня k9gag08u0e, 8192 байта на странице
http://rln.nnov.ru/uploads/files/k9gag08u0e.pdf
FatFS настроено на 512 байт, с 8192 она все равно не умеет работать, думал позже сделать просто массив на 8192, и самому разбивать его по 512
в общем вопрос, по какому адресу хранится этот идентификатор? и правильно ли я понимаю смысл
ниже проект, хотя конечно мб и не понадобится
Спасибо за помощь