MMC и RS-MMC-карты от Sandisk отформатированы "подобно жёсткому
диску" под разделённую файловую систему DOS FAT.
Подобно жёстким дискам в ПК, первый блок данных памяти состоит из
таблицы разделов. Поэтому будем использовать такую же систему
обозначений, как и для жёстких дисков, то есть область памяти делится на
логические сектора по 512 байтов каждый, а первый сектор зарезервирован
для этой таблицы разделов. Таблица 1 показывает структуру данных в этом секторе.
Таблица 1. Структура первого сектора
Позиция байта | Длина, байтов | Описание элемента | Значение/Диапазон |
0x0 | 446 | Подпрограмма проверки на непротиворечивость | – |
0x1BE | 16 | Содержимое таблицы раздела | См. Таблицу 2 |
0xCE | 16 | Содержимое таблицы раздела | См. Таблицу 2 |
0x1DE | 16 | Содержимое таблицы раздела | См. Таблицу 2 |
0x1EE | 16 | Содержимое таблицы раздела | См. Таблицу 2 |
0x1FE | 1 | Сигнатура | 0x55 |
0x1FF | 1 | Сигнатура | 0xAA |
Таблица 2. Описание содержимого раздела
Позиция байта | Длина, байтов | Описание элемента | Значение/Диапазон |
0x0 | 1 | Загрузочный дескриптор | 0x00 (не загрузочный диск) 0x80 (загрузочный диск) |
0x1 | 3 | Первый сектор раздела | Адрес первого сектора |
0x4 | 1 | Дескриптор файловой системы | 0 = Пусто 1 = DOS 12-разрядный FAT < 16 Мб 4 = DOS 16-разрядный FAT < 32 Мб 5 = Расширенный DOS 6 = DOS 16-разрядный FAT >= 32 Мб 0x10 – 0xFF = свободны для других файловых систем*
|
0x5 | 3 | Последний сектор раздела | Адрес последнего сектора |
0x8 | 4 | Первый сектор раздела относительно начала устройства | Номер первого сектора (линейный адрес) |
0xc | 4 | Число секторов в разделе | От одного до максимального количества секторов на устройстве |
* Дескрипторы, отмеченные звёздочкой, не используются в системе DOS.
Каждый раздел DOS основан на 12-разрядном, 16-разрядном FAT или VFAT
соответственно. Все номера секторов хранятся в формате с прямым порядком
байтов (первым стоит самый младший байт). Начальный и конечный адреса
раздела дан в терминах головок, дорожек и секторов, и поэтому может быть
проигнорирован MMC-картой, поскольку позицию раздела можно определить с
помощью последних двух элементов (номер первого сектора и число
секторов в разделе).
Загрузочный сектор описан в Таблице 3.
Таблица 3. Загрузочный сектор
Позиция байта | Длина, байтов | Описание элемента | Значение/Диапазон |
0x0 | 3 | Команда перехода | 0xEB 0xXX 0x90 |
0x3 | 8 | OEM имя | XXX |
0xB | 2 | Байтов в секторе | 512 |
0xD | 1 | Секторов в кластере | XXX (в диапазоне: 1-64) |
0xE | 2 | Зарезервированные сектора (число зарезервированных секторов на диске), включая загрузочный сектор) | 1 |
0x10 | 1 | Число таблиц FAT | 2 |
0x11 | 2 | Число записей корневого каталога | 512 |
0x13 | 2 | Число секторов на диске | XXX
(Зависит от ёмкости карты, если носитель данных имеет более 65535
секторов, это поле равно 0, а "число всех секторов" установлено) |
0x15 | 1 | Описатель диска | 0xF8 (жёсткий диск) |
0x16 | 2 | Секторов в FAT | XXX |
0x18 | 2 | Секторов в дрожке | 32 (не имеет смысла) |
0x1A | 2 | Число головок | 2 (не имеет смысла) |
0x1C | 4 | Число скрытых секторов | 0 |
0x20 | 4 | Число всех секторов | XXX (зависит от ёмкости) |
0x24 | 1 | Номер диска | 0x80 |
0x25 | 1 | Зарезервировано | 0 |
0x26 | 1 | Расширенная сигнатура загрузки | 0x29 |
0x27 | 4 | Идентификатор или серийный номер тома | XXX |
0x2B | 11 | Метка тома | XXX (ASCII символы, дополняемые пробелами, если менее 11 символов) |
0x36 | 8 | Тип файловой системы | XXX (ASCII символы, идентифицирующие тип файловой системы FAT12 или FAT16) |
0x3E | 448 | Код программы загрузки | XXX |
0x1FE | 1 | Сигнатура | 0x55 |
0x1FF | 1 | Сигнатура | 0xAA |
Все появления "X", означают зависящие от карты или неопределённые
значения. Число секторов в дорожке и число головок для MMC-карты
бессмысленны и их можно проигнорировать.
© PIClist-RUS (piclist.ru), 2007 г.
|