Есть предложения как сгладить процесс записи не особо снижая темп записи?
Плавающая скорость записи на sd карту
Всем привет. Имеется stm32f3 и sd карта, подключенная по spi. В главном цикле происходит опрос всех датчиков и последующая запись готового сектора на карту. Так вот всё бы ничего да вот частота записи на карту плавает. Причем 90% времени частота с учётом опроса датчиков порядка 100Гц, а в остальное время 25Гц. Причем, чем дальше я продвигаюсь по секторам на карте, тем дольше идёт запись (ну это другой вопрос).
Есть предложения как сгладить процесс записи не особо снижая темп записи?
Есть предложения как сгладить процесс записи не особо снижая темп записи?
- Реклама
- Сообщения: 312
- Зарегистрирован: Вс июл 29, 2012 16:25:39
Производить запись не одного целого сектора, а сразу блока секторов. В идеале - размером с кластер.FireProoF писал(а):Есть предложения как сгладить процесс записи не особо снижая темп записи?
Т.е. создать буфер под запись данных.
Закешировать FAT-таблицу: и поиск свободного кластера увеличится, и сохранение изменений FAT делать тоже большими блоками.
Но, всё это требует много памяти!
А вот это проверить. Возможно, поиск первого свободного кластера в FAT-таблице каждый раз производиться от начала таблицы, а не от последнего найденного кластера.FireProoF писал(а):чем дальше я продвигаюсь по секторам на карте, тем дольше идёт запись (ну это другой вопрос).
А если я буду использовать МК с аппаратным SDIO, эти проблемы сами отпадут?
- Сообщения: 312
- Зарегистрирован: Вс июл 29, 2012 16:25:39
Нет, с чего бы им отпасть?FireProoF писал(а):МК с аппаратным SDIO
SDIO/SPI - это лишь способ обмена с карточкой. Так сказать, нижний уровень обмена.
А "запись файла" - это уже работа с FAT-таблицей, запись в нужные кластеры и т.д. Более высоких уровень.
Но! В принципе, проблема может уйти. Точнее, она может быть скрыта повышенной скоростью обмена с картой.
За исключением проблемы поиска следующего свободного кластера, если он реализован как я предположил ранее.
Поэтому стоит посчитать скорости обмена и прикинуть. Да, а с какой частотой сейчас идет обмен по SPI?
Кстати! А кто будет считывать сохранённые данные? Тот же самый stm или карта будет выниматься и втыкаться в комп?
После перехода с stmf1 на f3 что-то не проверил. Надо будет посмотреть.
Потом вставляю в комп и считываю.
Потом вставляю в комп и считываю.
- Реклама
- Сообщения: 312
- Зарегистрирован: Вс июл 29, 2012 16:25:39
Ясно. Да, тут необходимо использовать FAT, да.FireProoF писал(а):Потом вставляю в комп и считываю.
Хотя, рассмотри вариант "своей файловой системы".
В этом случае запись будет производится куда быстрее. А для считывания на компе придётся писать программу-читалку...


