Микроконтроллеры | FAT16, и работа с ней |
|
---|---|---|
Пытаюсь написать библиотеку функций для работыс FAT16 устройствами, на базе разработок Элм Чена, но затык случается при попытке найти на просторах накопителя место расположения каталога с файлами...Может кто подскажет ? |
|
|
Так у FAT12 и FAT16 место корневого каталога строго зафиксировано: сразу после FAT. Размер его тоже фиксирован и указан в Boot секторе (Root directory entries). |
|
|
И так - интерисует строго FAT16, задача вычислить адрес (в секторах) начала списка файлов корневого каталога и начало области данных по информации от PBR и MBR. В оригинальном беруться 2 байта начиная со смещения в &0Eh в PBR, умножается на 2 и прибавляется к номеру сектора PBR и еще +1. Но на этом месте обычно одни нули. Например у меня в ячейке &06h а PBR лежит в &20h секторе, итого &C0h, а фактически нужен аддрес &00042000h или сектор &210h |
|
|
Здесь идет речь про MMC и фат на ней? Я подключал карту через картридер к компу и смотрел погой WinHex - всё сходилось. |
|
|
Ну в общем там всё описано, но от себя добавлю, что не следует надеяться на абсолютные значения принятые как стандартные. Например, число сектров на кластер, по указанной ссылке определяется размером диска, но фактически может быть другим. Правильное значение надо считывать из загрузчика. Все смещения в PBR не абсолютные, а указываются относительно самого PBR. Wladimir_TS: задача вычислить адрес (в секторах) начала списка файлов корневого каталога и начало области данных |
|
|
Я посчитал так Сектор(PBR)+(0Eh)+(16h)*2=адрес начала каталога, а еще +((11h)+15)/16 Удается читать файлы из корневого каталога и длиной не более сектора. Разбираюсь дальше. Спасибо за информацию. Сделаю чтение еще и из ячейки 10h |
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |