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