2016-05-15 3 views
1

Название может вводить в заблуждение, однако я не мог написать точный. Мои извинения.AVR FAT-driver design

Я работаю над «частичным» FAT32-драйвером для AVR, написанным на C. Я пытаюсь написать функцию, которая в основном читала бы 4 действительные записи (пропускать LFN и пустые записи) из каталога в буфер. Функция отслеживает текущий кластер и текущее смещение (увеличивается на 32, так как записи составляют 32 байта) внутри кластера.

Теперь моя проблема: мне нужна функция, чтобы иметь возможность читать четыре записи вперед (как в, следующие 4 записи от текущего смещения) или четыре записи назад (перед текущим смещением). Моя проблема прямо сейчас - это крайний случай при чтении назад, у вас могут быть некоторые записи в текущем кластере и некоторые записи в предыдущем. Должен ли я отслеживать все номера кластеров, уже прочитанные в массиве для перемещения назад? Я просто ищу несколько указателей на то, что было бы изящным решением.

Заранее благодарен!

ответ

0

Это зависит от вашей доступной оперативной памяти, но когда вам не нужно быстро получать результат, я бы рекомендовал не кэшировать содержимое.

КПП. Почему вы пытаетесь изобрести колесо? Вы могли бы просто использовать что-то вроде толстой файловой системы вязов.

+0

Драйвер petitfs также не может этого сделать. – carazh