Перейти к содержанию
    

Cвоя FAT для связки MK <=> FLASH

Ну как же не может?

Берём файл размером меньше и равный размеру кластера и забиваем им всю память под разными именами.

В итоге FAT будет забита записями 0x0FFFFFFF - последний кластер.

А в Root Directory не будет ни одной файловой структуры с именем файла 0x00...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

20 minutes ago, forummailandlogin said:

А в Root Directory не будет ни одной файловой структуры с именем файла 0x00...

Да, если root dir заполнен аккурат по границе кластера, '0' действительно не будет. Но будет конец цепочки кластеров в любом случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ни какой цепочки не будет т.к. у нас файл размеров в один кластер, а не два или более.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, forummailandlogin said:

Ни какой цепочки не будет т.к. у нас файл размеров в один кластер, а не два или более.

Причем тут размеры файлов? Root dir в FAT32 представляет собой такой же файл из цепочки кластеров. Если в ней 100500 файлов, то цепочка будет, никуда не денется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как еще можно понять выражение "цепочка кластеров" применительно к root dir FAT32?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не знаю. Я понимаю так.

Цепочка кластеров это след по которому можно отследить последовательность расположения данных одного файла. Звено, за звеном. Но применительна она не к Root Directory, а к FAT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цепочка кластеров может принадлежать файлу, директории или корневой директории в случае FAT32. Признаком конца директории является нулевая запись или конец кластерной цепочки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу простейший вариант предложить: в первом мегабайте флешки разместить таблицу индексов, а файлы писать последовательно, как в tar. Если файл удаляется, остается дырка, но и черт с ней (пока забьем 16ГБ под завязку, скорей, флешка сдохнет; в крайнем случае можно потом вытащить флешку и на компьютере сделать "дефрагментацию").

Если мне понадобится работать с флешками, я себе именно такую псевдофайловую систему и сделаю. А на компьютере написать для нее простенький модуль ядра, чтобы монтировать можно было и работать с файлами, не считывая полностью содержимое всей флешки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На само деле всё просто. Действительно в FAT32 Root Directory является таким же файлом, а значит информация о нём находится в FAT.

Минимальный размер Root Directory как у всех - 1 кластер. как только количество каталожных записей превысит границу кластера, то в FAT на его месте появится номер кластера где искать продолжение.

Таким образом и узнаём размер Root Directory что бы не вылетить за его пределы при поиске по нему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...