私は、FAT ファイルシステムとして 8MB の RAM チャンクを使用する USB 大容量記憶装置ドライバーを作成している組み込みシステムを作成しています。
当時は、OS が RAM 領域をゼロにして FAT パーティション自体をフォーマットできるようにすることは理にかなっていましたが、Jan Axelson (USB に関する本の人気著者) のPORTS フォーラムで診断している問題に遭遇しました。この問題は、ドライブ内のブロックの消去に関連しており、USB エニュメレーションの前にメモリ領域を FAT ファイルシステムに事前フォーマットすることで回避できる場合があります。次に、ドライブが正常に動作するかどうかを確認できました。理想的には、事前にフォーマットされたパーティションには、読み取り操作をテストするためのファイルが含まれています。
どうにかして自分の OS (OSX) に 8MB の FAT ファイルシステムのモックを作成してマウントし、それにファイルを書き込んで、プロジェクトに含めるためにイメージ ファイルにエクスポートできればいいのですが。誰かがこれを行う方法を知っていますか? 私は残りを処理することができました。現時点では、それが FAT12/16/32 になるかどうかはあまり心配していません。オプションで MBR を含めるとよいでしょう。
そのオプションが存在しない場合は、事前に作成されたユーティリティを使用して、プロジェクトに含めて RAM に直接アップロードできる FAT img ファイルを作成しようとしています。このユーティリティを使用すると、たとえば 512 バイトのセクターを持つ 8MB のファイルシステムを指定でき、場合によっては FAT12 / FAT16 / FAT32 も指定できます。
誰もそのようなユーティリティを知っていますか? 見つけられませんでした。
そうでない場合、誰かがこれを C で実装するための最初のステップを推奨できますか? ライブラリが存在することを願っています。大容量記憶装置ドライバーをゼロから実装したのでかなり疲れましたが、「しわが寄って」手動で FAT パーティションを作成する必要があるかもしれないことは理解しています。それほど難しくありません。いくつかのパックされた構造体といくつかのオプションを想像します。私はそこに着きます。私はすでに FAT ファイルシステム自体にリソースを持っています。