Я пытаюсь реализовать только библиотеку файловой системы FAT16/32 для встроенных систем, чтобы читать карты SD (изобретать колесо в образовательных целях).Возможно ли, что небольшие SD-карты отформатированы без MBR?
Кажется, что есть карточки, которые отформатированы без MBR; просто FAT без таблицы разделов.
Я прочитал документы FAT и документы MBR и научился читать SD-карту, у которой есть MBR и FAT.
Мне нужна моя библиотека C++ для поддержки чтения SD-карт без MBR.
Мой текущий подход заключается в следующем:
- Попробуйте прочитать первый сектор предполагая, что он содержит FAT BPB (Boot Parameter Block).
- Проверьте, действительно ли информация.
- Если да, продолжайте читать корневой каталог.
- В противном случае предположим, что у него MBR.
- Прочтите таблицу разделов, начиная с 0x1BE.
- Если поддерживается тип поддерживаемого раздела, попробуйте прочитать его первый сектор как FAT.
- Если прочитанная информация действительна, продолжайте чтение корневого каталога.
- В противном случае возвращает ERROR_CODE
Есть ли лучший подход? Например, есть ли волшебное число или определенный шаблон, который можно идентифицировать?
вы просто прочитать и посмотреть, если она есть? –
есть ли волшебное число или определенный шаблон для идентификации? –
или есть способ отличить первый сектор FAT от MBR? –