Дизайн FAT-драйвера AVR
Название может вводить в заблуждение, однако я не смог написать точный. Мои извенения.
Я работаю над "частичным" FAT32-драйвером для AVR, написанным на C. Я пытаюсь написать функцию, которая в основном считывает 4 допустимые записи (пропуск LFN и пустые записи) из каталога в буфер. Функция отслеживает текущий кластер и текущее смещение (увеличивается на 32, поскольку записи составляют 32 байта) внутри кластера.
Теперь моя проблема заключается в том, что мне нужно, чтобы функция могла читать четыре записи вперед (как, например, следующие 4 записи из текущего смещения) или четыре записи назад (до текущего смещения). Моя проблема сейчас заключается в крайнем случае при чтении в обратном направлении, у вас могут быть некоторые записи в текущем кластере и некоторые записи в предыдущем. Должен ли я отслеживать все числа кластеров, уже прочитанные в массиве для обхода назад? Я просто ищу указатели на то, что было бы элегантным решением.
Заранее спасибо!
1 ответ
Это зависит от вашей доступной оперативной памяти, но когда вам не нужно получать результат очень быстро, я бы рекомендовал не кэшировать содержимое.
Btw. Почему вы пытаетесь изобрести колесо? Вы можете просто использовать что-то вроде толстой файловой системы вяза.