SDカードを読み取るために、組み込みシステム用の読み取り専用FAT16/32ファイルシステムライブラリを実装しようとしています(教育目的でホイールを再発明しています)。
MBR なしでフォーマットされたカードがあるようです。パーティションテーブルのないFATだけです。
FAT ドキュメントと MBR ドキュメントを読み、MBR と FAT の両方を備えた SD カードを読み取る方法を学びました。
MBR なしで SD カードの読み取りをサポートするには、C++ ライブラリが必要です。
私の現在のアプローチは次のとおりです。
- FAT BPB (Boot Parameter Block) が含まれていると仮定して、最初のセクターを読み取ってみてください。
- 情報が有効かどうかを確認してください。
- はいの場合は、ルート ディレクトリの読み取りを続けます。
- それ以外の場合は、MBR があると想定します。
- 0x1BE から始まるパーティション テーブルを読み取ります。
- サポートされているパーティション タイプが使用可能な場合は、その最初のセクターを FAT として読み取ってみてください。
- 読み取った情報が有効な場合は、ルート ディレクトリの読み取りを続行します。
- それ以外の場合は ERROR_CODE を返します
より良いアプローチはありますか?たとえば、特定できるマジック ナンバーや特定のパターンはありますか。