У меня есть рабочая интеграция FatFS в моем приложении C ++, работающем на платформе Cortex M4.
Мое приложение состоит из регистрации данных в формате данных, называемом MDF .
На стороне реализации я записываю данные (в заданный файл) в виде пакетов буферов;Количество буферов зависит от того, насколько быстро я получаю данные: пакет журнала одного буфера.,,делать другие вещи.,,пакет журнала из пяти буферов.,,делать другие вещи.,,и т.д.
Существует также заголовок, который составляет 24 байта и содержит количество байтов данных.На ПК я бы просто сохранил заголовок в конце измерения, но это встроенный продукт, который можно отключить в любой момент времени.Если я не сохраняю заголовок периодически, файл становится «поврежденным».
Поэтому, чтобы поддерживать согласованность, мне нужно повторно сохранять заголовок после сохранения каждой партии данных, и вот в чем проблема.
Это означает, что мне нужно позвонить f_lseek
перед написанием заголовка, а затем, прежде чем записать пакет данных.
I am с использованием f_cache_fptr
, поэтомуf_lseek
не слишком медленный, но я бы хотел избежать необходимости часто звонить f_lseek
.
ВОПРОС
Возможно ли как-то иметь 2 запроса?местоположения, так что мне не нужно вызывать f_seek
для пинг-понга между местоположением заголовка и местоположением данных?
Я открыт для изменения FatFS.
Проблема на низком уровне проще, поскольку заголовок разделяет только один сектор 512 байт с данными: 24 байта заголовка, за которыми следуют 488 байтов данных.