реклама на сайте
подробности

 
 
> Что может замедлять работу FatFS?
sambotey
сообщение Sep 29 2011, 10:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 25-08-11
Пользователь №: 66 868



LPC1768 + SDHC.
Для работы с 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);
};


Кто-нибудь сталкивался с подобной проблемой?

Сейчас шлифую свои процедуры из интерфейса с FatFS(файл diskio.c), но пока безрезультатно. Думаю, что пора переходить к функциям самой FatFS(файл ff.c).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lotor
сообщение Sep 29 2011, 11:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(sambotey @ Sep 29 2011, 14:43) *
Думаю, что пора переходить к функциям самой FatFS(файл ff.c).

Ошибочное решение. FatFS у меня выдает до 5 МБайта в секунду для SDHC (с буферизацией конечно).
Библиотечные функции трогать не стоит.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
sambotey
сообщение Sep 29 2011, 12:26
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 25-08-11
Пользователь №: 66 868



Цитата(Lotor @ Sep 29 2011, 14:41) *
FatFS у меня выдает до 5 МБайта в секунду для SDHC (с буферизацией конечно).


Что значит "с буферизацией"?


Цитата(sergeeff @ Sep 29 2011, 14:08)
А со временем появяются дополнительные накладные расходы типа что-то стереть в директории, сами директории растут и прочее.

У меня лишь быстро увеличивается количество файлов. А разве увеличение количества файлов влечет за собой увеличение времени создания файла и записи в него? Я тоже предполагал, что виной всему "накладные расходы". Но как с этим бороться? Ведь после закрытия файла мы возвращаемся в исходное положение - освобождается дескриптор файла и все связанные с ним структуры.

Сообщение отредактировал sambotey - Sep 29 2011, 12:27
Go to the top of the page
 
+Quote Post
Lotor
сообщение Sep 29 2011, 12:48
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(sambotey @ Sep 29 2011, 16:26) *
Что значит "с буферизацией"?

То и значит - формирую буферы по 6 МБайт в SDRAM и затем записываю их. А иначе быстрых скоростей с SDHC и не видать - по спецификации карта может давать задержки до 250 мс, при чем независимо от класса.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01945 секунд с 7
ELECTRONIX ©2004-2016