Я пытаюсь сохранить много файлов на SD-карте в цикле с помощью функции f_write из FatFs libery, к сожалению, после максимум 50 записей цикла f_write возвращает FR_DISK_ERR.
Выполнение одного теста заняло более 30 минут, поэтому я сделал Enity Test, который сохраняет 10000 файлов на SD-карте, программа все еще сохраняет <50 файлов. </p>
for(uint16_t i = 0; i < 10000; ++i){
if(f_mount(&mfs,"0:",0) != FR_OK){
to_int.put_str("Mount error");
break;
}
if(f_chdrive("0:" ) != FR_OK){
to_int.put_str("Oper error");
break;
}
sprintf(f_name, "test%d.txt", i);
if(f_open(&fil, f_name, FA_WRITE | FA_CREATE_ALWAYS)!= FR_OK){
to_int.put_str("Write error");
break;
}
if(f_write(&fil, wtext, sizeof(wtext), (void *)&wbytes) != FR_OK){ //<------FR_DISK_ERR
to_int.put_str("Write Error\n");
break;
}
f_sync(&fil);
f_close(&fil);
f_mount(0, "0:", 0);
to_int.put_str(f_name);\
to_int.put_str(" writed!\n");
}