Для работы с SD-карточкой использую FatFS. Программа должна достаточно быстро создавать на карточке файлы и записывать в них какие-то данные. Величина каждого файла 15-20Кb. Скорость создания файлов - 2-3 файла в секунду. Однако со временем скорость, с которой создаются и записываются файлы, падает. Общая структура программы такова:
Код
while (f_mount(0, &FATFS_Obj) != FR_OK);
while (f_mkdir (str) != FR_OK);
while (1)
{
//время выполнения этого цикла падает от 1/3секунды до 3 секунд
while (f_open(&fil_obj, str1, FA_CREATE_ALWAYS|FA_WRITE) != FR_OK);
f_write(&fil_obj, &ibf, data_length, &ui);
while (f_close(&fil_obj) != FR_OK);
};
while (f_mkdir (str) != FR_OK);
while (1)
{
//время выполнения этого цикла падает от 1/3секунды до 3 секунд
while (f_open(&fil_obj, str1, FA_CREATE_ALWAYS|FA_WRITE) != FR_OK);
f_write(&fil_obj, &ibf, data_length, &ui);
while (f_close(&fil_obj) != FR_OK);
};
Кто-нибудь сталкивался с подобной проблемой?
Сейчас шлифую свои процедуры из интерфейса с FatFS(файл diskio.c), но пока безрезультатно. Думаю, что пора переходить к функциям самой FatFS(файл ff.c).