2016-06-24 12 views
0

私は、組み込みシステム用の読み込み専用FAT16/32ファイルシステムライブラリを実装しようとしています。これは、SDカード(教育目的のために車輪を再発明する)を読み込むためです。小さなSDカードがMBRなしでフォーマットされている可能性はありますか?

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

私はFATドキュメントとMBRドキュメントを読んで、MBRとFATの両方を持つSDカードの読み方を学びました。

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

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

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

ERROR_CODEを返すより良い方法はありますか?たとえば、特定できるマジックナンバーや特定のパターンがありますか?

+0

のおかげであなただけ読んで、それがあるかどうかを確認? –

+0

には魔法の番号や特定のパターンがありますか? –

+0

またはFATの最初のセクタとMBRを区別する方法はありますか? –

答えて

0
  1. オフセット0x52のテキストFAT32をチェックします。
  2. 0x36でFAT12またはFAT16を確認する
  3. これも失敗した場合は、最初のセクタがMBRであると仮定します。

@Clifford

関連する問題