У меня есть система регистрации данных, работающая на STM32F7, которая хранит данные с помощью FatFs от ChaN на SD-карту: http://elm -chan.org / fsw / ff / 00index_e.html
Каждый новый набор данных хранится в отдельном файле вместе с каталогом.Во время последующей обработки на устройстве каждый файл читается, а затем удаляется.После тестирования последовательности открытия, чтения, удаления в каталоге с 5000 файлами я обнаружил, что чем дальше я сканировал каталог, тем медленнее он становился.
В начале этот цикл занимал около 100-200 мс, 2000 файловв и теперь это занимает 700 мс.Есть ли более быстрый способ хранения, чтения, удаления данных?или настройка FatFs?
edit: Извините, должен был указать, я использую FAT32 в качестве файловой системы FAT
f_opendir(&directory, "log");
while(1) {
f_readdir(&directory, &fInfo);
if(fInfo.fname[0] == 0) {
//end of the directory
break;
}
if(fInfo.fname[0] == '.') {
//ignore the dot entries
continue;
}
if(fInfo.fattrib & AM_DIR) {
//its a directory (shouldnt be here), ignore it
continue;
}
sprintf(path, "log/%s", fInfo.fname);
f_open(&file, path, FA_READ);
f_read(&file, rBuf, btr, &br);
f_close(&file);
//process data...
f_unlink(path); //delete after processing
}