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

 
 
> stm32 и FatFs от Chan
Ioann_II
сообщение Mar 30 2017, 02:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Здравствуйте, Уважаемые коллеги.

Снова нуждаюсь в Ваших подсказках.

Наконец-то подключил файловую систему от Чана и решил её опробовать.
Версия R0.11 от 02-02-2015.
Пробую открыть файл и дописать в его конец данные:
Код
f_open(&MyFile, "stm32.txt", FA_WRITE | FA_OPEN_ALWAYS);
f_lseek(&MyFile, f_size(&MyFile));
f_write(&MyFile, wtext, strlen((char *)wtext), &wbytes);


По описанию, FA_OPEN_ALWAYS должна открывать файл, если он есть и создавать если его нет.
Код выполняется, но:
- если такой файл уже есть, то очень быстро, менее 1с.
- если файла нет, то f_open и f_lseek срабатывают быстро, а вот f_write - долго, примерно минута. файл с данными появляются.

С чем это может быть связано? Куда "копать"?

_FS_NORTC пробовал (время не организовывал).
портирование от Domen Puncer, немного переделал.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ioann_II
сообщение Mar 30 2017, 23:57
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



0) почему не последняя версия?
Версия та, что была предложена в CubeMX. Полагаю, надо сначала её запустить, а потом уже и посвежее можно попробовать.
1) почему потребовалось портироваоие а не оригинальный код
Имею в виду под портированием реализацию низкоуровневых функций. Несколько разных вариантов из интернета пробовал - всё вообще тупо висло.
Поэтому (т.к. "с наскока" не вышло), стал разбираться последовательно. Чтение и запись секторов работают нормально, проверено. Регистр CSD тоже, из него берутся нужные параметры для ioctl. Таймауты сделаны без таймеров.
2) есть ли работа с DMA в diskio и учтены ли требования по выравниванию структур? Это пришлось делать.
DMA нет. Структур (кроме тех, которые в самой FatFs) не использую.

Ещё. Несколько дней назад на этот-же МК портировал систему FAT32. Там таких проблем не выявлено....
Да, ещё вот - на карте уже записано с пяток файлов, общим объёмом 80Мб.

Сейчас попробовал почистить карту - стало всё быстро....

Получается, что если карта заполнена, то новый файл будет создаваться очень долго??
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 31 2017, 06:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(Ioann_II @ Mar 31 2017, 02:57) *
Получается, что если карта заполнена, то новый файл будет создаваться очень долго??

Если на карте тысячи файлов, то возникают задержки в секунды.
У Вас кривое "портирование", низкоуровневые функции работы с диском нужно отлаживать либо писать заново.

Порядок действий при отладке такой:
1) Низкоуровневые функции запускаются сами по себе, без FATFS, измеряется их скорость работы.
2) В низкоуровневых функциях раскидываются команды дёргания ногой процессора, сигнал снимается осциллоскопом, таким образом выявляются места, где функция тормозит.
3) То же самое, что в п 2, но с FATFS
4) Читается моя тема про скорость работы карт памяти, https://electronix.ru/forum/index.php?showt...;hl=MiklPolikov , делаются выводы, низкоуровневые функции и fATfs перенастратваются, п 1-3 проходятся заново.
5) Принимается решение избавится от интерфейса SPI( я угадал ? ) и перейти на SDIO
6)П 1-4 проходятся заново


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Ioann_II
сообщение Mar 31 2017, 07:41
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 7-06-05
Пользователь №: 5 797



Цитата(MiklPolikov @ Mar 31 2017, 09:31) *
Если на карте тысячи файлов, то возникают задержки в секунды.
У Вас кривое "портирование", низкоуровневые функции работы с диском нужно отлаживать либо писать заново.

Порядок действий при отладке такой:
1) Низкоуровневые функции запускаются сами по себе, без FATFS, измеряется их скорость работы.
2) В низкоуровневых функциях раскидываются команды дёргания ногой процессора, сигнал снимается осциллоскопом, таким образом выявляются места, где функция тормозит.
3) То же самое, что в п 2, но с FATFS
4) Читается моя тема про скорость работы карт памяти, https://electronix.ru/forum/index.php?showt...;hl=MiklPolikov , делаются выводы, низкоуровневые функции и fATfs перенастратваются, п 1-3 проходятся заново.
5) Принимается решение избавится от интерфейса SPI( я угадал ? ) и перейти на SDIO
6)П 1-4 проходятся заново


1. Файлов всего 5-6. Общий объём 80МБ.
2. Низкоуровневые функции писаны заново. Чтение и запись сектора - проблем не выявлено. Поскольку при малом использовании объёма карты операции проходят быстро, дело не в этих функциях. Похоже, что долго делается поиск свободных кластеров...
3. Дёргания ногой процессора нет - используется аппаратный интерфейс SPI. Кстати надо проверить, не забыл-ли я в этом проекте поднять скорость SPI после инициализации карты. Хотя это не принципиально.
4. За ссылку спасибо - буду изучать.
5. Не угадали. SDIO на МК нет, поэтому только SPI.... увы. С SDIO, наверное, проще - в CUBEMX есть поддержка его и в проект подключается просто.

Вопрос - как Чан ищет кластер свободный для создания файлов - если тупо перебирает все имеющиеся кластеры, тогда это долгий процесс... и тем более долгий, чем больши кластеров занято...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 31 2017, 09:02
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Ioann_II @ Mar 31 2017, 09:41) *
Вопрос - как Чан ищет кластер свободный для создания файлов - если тупо перебирает все имеющиеся кластеры, тогда это долгий процесс... и тем более долгий, чем больши кластеров занято...

Если подозреваете что дело именно в этом - попробуйте отформатировать карту заново и с большим размером кластера и положить туда потом эти файлы.
И вроде там у Чана был кеш FAT-области. А если нет - его можно сделать. Там насколько помнится можно было выделить сколько-то памяти под буфер, можно было минимум, а можно было побольше. Может из-за нехватки буфера у Вас ПО постоянно перечитывает FAT и запись директории с карты?
Если Вы сами пишете low level IO, то несложно туда добавить печать в лог статистики вызовов - можете промониторить какие функции вызываются, насколько часто и каковы временные соотношения между этими вызовами.

Я пару лет назад использовал FatFS на LPC1788. И тоже через SPI. Писал сам низкий уровень (SSP с FIFO + DMA + достаточные буфера в ОЗУ). Так у меня скорость чтения приближалась к 1МБ/сек. Открытия/закрытия файлов тоже не тормозили.
Посмотрите всё что касается буферизации в FatFS и добавьте везде.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ioann_II   stm32 и FatFs от Chan   Mar 30 2017, 02:04
- - Genadi Zawidowski   три вопроса: 0) почему не последняя версия? 1) поч...   Mar 30 2017, 07:36
- - MiklPolikov   Цитата(Ioann_II @ Mar 30 2017, 05:04) С ч...   Mar 30 2017, 16:54
|||- - Ioann_II   Цитата(jcxz @ Mar 31 2017, 12:02) Если по...   Mar 31 2017, 11:56
||- - MiklPolikov   Цитата(Ioann_II @ Mar 31 2017, 10:41) Пох...   Mar 31 2017, 12:23
||- - Ioann_II   Цитата(MiklPolikov @ Mar 31 2017, 15:23) ...   Mar 31 2017, 14:15
||- - Шаманъ   Цитата(Ioann_II @ Mar 31 2017, 17:15) При...   Mar 31 2017, 14:40
|- - jcxz   Цитата(Ioann_II @ Mar 31 2017, 01:57) Пол...   Mar 31 2017, 06:37
- - Genadi Zawidowski   ЦитатаТаймауты сделаны без таймеров. Это где? Там ...   Mar 31 2017, 14:34
- - Rash   Потеря скорости и времени будет, если писать по 82...   Mar 31 2017, 19:47
|- - Ioann_II   Отформатировал карту. Записал большой объём данных...   Apr 1 2017, 10:21
|- - jcxz   Цитата(Ioann_II @ Apr 1 2017, 12:21) Выво...   Apr 1 2017, 13:23
|- - Ioann_II   Цитата(jcxz @ Apr 1 2017, 16:23) Ещё врод...   Apr 1 2017, 14:42
- - Hold   На обычной SD 2 ГБ емкостью получал скорости запис...   Oct 12 2017, 07:10
|- - mantech   Цитата(Hold @ Oct 12 2017, 10:10) Если пи...   Oct 12 2017, 12:05
|- - Огурцов   Цитата(mantech @ Oct 12 2017, 12:05) Это ...   Oct 13 2017, 05:35
|- - mantech   Цитата(Огурцов @ Oct 13 2017, 08:35) а та...   Oct 13 2017, 07:43
|- - Огурцов   Цитата(mantech @ Oct 13 2017, 08:43) Дак ...   Oct 13 2017, 17:16
- - Hold   Нашел карту SDHC 4 класс 8 ГБ. Или что-то с картой...   Oct 13 2017, 04:46
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 06:46) Читает/...   Oct 13 2017, 08:20
|- - jcxz   Цитата(Ruslan1 @ Oct 13 2017, 11:20) В об...   Oct 13 2017, 15:51
|- - Hold   Цитата(jcxz @ Oct 13 2017, 22:51) У автор...   Oct 16 2017, 09:37
|- - Ruslan1   Цитата(Hold @ Oct 16 2017, 11:37) Как име...   Oct 16 2017, 10:00
|- - jcxz   Цитата(Hold @ Oct 16 2017, 12:37) Как име...   Oct 16 2017, 10:19
|- - mantech   Цитата(Hold @ Oct 16 2017, 12:37) Там и т...   Oct 16 2017, 13:13
|- - sadat   Цитата(mantech @ Oct 16 2017, 16:13) Если...   Oct 16 2017, 15:08
||- - mantech   Цитата(sadat @ Oct 16 2017, 18:08) У ФМ-к...   Oct 16 2017, 15:25
|- - Огурцов   Цитата(mantech @ Oct 16 2017, 13:13) Если...   Oct 16 2017, 15:36
|- - mantech   Цитата(Огурцов @ Oct 16 2017, 18:36) в на...   Oct 16 2017, 16:38
|- - Огурцов   Цитата(mantech @ Oct 16 2017, 16:38) Хоти...   Oct 16 2017, 20:39
- - Hold   Да, дело было в размере кластера. Флешку не формат...   Oct 13 2017, 09:19
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 11:19) Понятно...   Oct 13 2017, 09:41
- - Hold   У меня интерес по поводу скорости был скорее акаде...   Oct 13 2017, 09:51
|- - Ruslan1   Цитата(Hold @ Oct 13 2017, 11:51) решил г...   Oct 13 2017, 10:14
|- - mantech   Цитата(Ruslan1 @ Oct 13 2017, 13:14) влож...   Oct 13 2017, 14:07
- - Hold   На будущее запомню, однако не думаю что сейчас с н...   Oct 16 2017, 12:50
- - Hold   На FM25V10 в количестве 4х штук лежит критически в...   Oct 16 2017, 17:56
|- - mantech   Цитата(Hold @ Oct 16 2017, 20:56) На FM25...   Oct 16 2017, 18:21
- - Hold   Лог на sdram особо не в счет - питания нет 3 секун...   Oct 16 2017, 18:36
|- - mantech   Цитата(Hold @ Oct 16 2017, 21:36) Лог на ...   Oct 16 2017, 20:23
|- - Hold   Цитата(mantech @ Oct 17 2017, 03:23) Опят...   Oct 17 2017, 03:58
|- - mantech   Цитата(Hold @ Oct 17 2017, 06:58) За день...   Oct 17 2017, 08:01
|- - jcxz   Цитата(Hold @ Oct 17 2017, 06:58) Основна...   Oct 17 2017, 08:45
|- - Hold   Цитата(jcxz @ Oct 17 2017, 15:45) А каков...   Oct 17 2017, 09:58
|- - sadat   Цитата(Hold @ Oct 17 2017, 12:58) Фрам вс...   Oct 17 2017, 10:36
|- - jcxz   Цитата(Hold @ Oct 17 2017, 12:58) В это в...   Oct 17 2017, 17:04
||- - Hold   Цитата(jcxz @ Oct 18 2017, 00:04) Всё опи...   Oct 18 2017, 02:20
||- - jcxz   Цитата(Hold @ Oct 18 2017, 05:20) Что бы ...   Oct 18 2017, 10:59
|- - Огурцов   Цитата(Hold @ Oct 17 2017, 09:58) Фрам вс...   Oct 17 2017, 18:55
- - Hold   Ставить серьезные диски ради 512К (по факту их там...   Oct 18 2017, 11:38
|- - mantech   Цитата(Hold @ Oct 18 2017, 14:38) Ставить...   Oct 18 2017, 13:14
- - Hold   Кэши(зеркало) удобнее читать чем тянуть байты из A...   Oct 18 2017, 16:52
|- - mantech   Цитата(Hold @ Oct 18 2017, 19:52) Кэши уд...   Oct 18 2017, 17:08
- - Hold   Эти самые резервные копии через фтп верхнее ПО раз...   Oct 18 2017, 17:15
|- - mantech   Цитата(Hold @ Oct 18 2017, 20:15) Эти сам...   Oct 18 2017, 17:26
||- - sadat   Цитата(mantech @ Oct 18 2017, 20:26) ...   Oct 18 2017, 17:46
||- - mantech   Цитата(sadat @ Oct 18 2017, 20:46) Думаю,...   Oct 18 2017, 17:52
||- - sadat   Цитата(mantech @ Oct 18 2017, 20:52) В сл...   Oct 18 2017, 17:56
||- - mantech   Цитата(sadat @ Oct 18 2017, 20:56) Иногда...   Oct 18 2017, 18:06
|- - jcxz   Цитата(Hold @ Oct 18 2017, 20:15) Эти сам...   Oct 19 2017, 06:48
- - Hold   Сливаются копии FRAM а не прошивка. Но да, прошивк...   Oct 18 2017, 17:41
|- - mantech   Цитата(Hold @ Oct 18 2017, 20:41) Бэкап f...   Oct 18 2017, 17:47
|- - sadat   Цитата(mantech @ Oct 18 2017, 20:47) И ча...   Oct 18 2017, 17:49
- - Hold   Питания ионистора хватает на то, чтобы несколько р...   Oct 18 2017, 18:06
- - Hold   Не буду особо ничего опровергать, скажу лишь, что ...   Oct 19 2017, 09:16
|- - jcxz   Цитата(Hold @ Oct 19 2017, 12:16) Не буду...   Oct 19 2017, 09:39
- - Hold   Атомарность, он же совместный доступ, обеспечивает...   Oct 24 2017, 15:14
|- - jcxz   Цитата(Hold @ Oct 24 2017, 18:14) Атомарн...   Oct 25 2017, 08:29
|- - mantech   Цитата(jcxz @ Oct 25 2017, 11:29) Т.е. - ...   Oct 25 2017, 09:21
- - uriy   На STM32F407 сделал mass storage in ram. Выделил 6...   Oct 25 2017, 13:16
- - Hold   Признаться да, такой защиты у меня нет, новые данн...   Oct 25 2017, 16:01
- - jcxz   Цитата(Hold @ Oct 25 2017, 19:01) Признат...   Oct 26 2017, 06:18


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

 


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


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