0

SDカードを読み取るために、組み込みシステム用の読み取り専用FAT16/32ファイルシステムライブラリを実装しようとしています(教育目的でホイールを再発明しています)。

MBR なしでフォーマットされたカードがあるようです。パーティションテーブルのないFATだけです。

FAT ドキュメントと MBR ドキュメントを読み、MBR と FAT の両方を備えた SD カードを読み取る方法を学びました。

MBR なしで SD カードの読み取りをサポートするには、C++ ライブラリが必要です。

私の現在のアプローチは次のとおりです。

  1. FAT BPB (Boot Parameter Block) が含まれていると仮定して、最初のセクターを読み取ってみてください。
  2. 情報が有効かどうかを確認してください。
  3. はいの場合は、ルート ディレクトリの読み取りを続けます。
  4. それ以外の場合は、MBR があると想定します。
  5. 0x1BE から始まるパーティション テーブルを読み取ります。
  6. サポートされているパーティション タイプが使用可能な場合は、その最初のセクターを FAT として読み取ってみてください。
  7. 読み取った情報が有効な場合は、ルート ディレクトリの読み取りを続行します。
  8. それ以外の場合は ERROR_CODE を返します

より良いアプローチはありますか?たとえば、特定できるマジック ナンバーや特定のパターンはありますか。

4

1 に答える 1