-1

私はマイクロコントローラーに取り組んでおり、いくつかのセンサーからのデータをSDカードの.txtファイルに書き込もうとしています。後でSDカードをカードリーダーに置き、PCでデータを読み取ろうとしています。

FAT32 ファイル システム用にゼロから .txt ファイルを作成する方法を知っている人はいますか? 呼び出す定義済みのコード/メソッド/関数はありません。コードを作成する必要があります。

特定のプログラミング言語の問題ではないため、複数のタグを付けました。後でコードを C または Java から選択したプログラミング言語に変換できます。しかし、どのタイプの言語でもそのような低レベルのメソッド/関数を見つけることができないようです:)

何か案は?

4

2 に答える 2

2

FatFsは非常に優れており、移植性に優れています。FAT12、FAT16、FAT32、長いファイル名、シーク、読み取り、書き込みをサポートしています (これらのほとんどは、メモリ フットプリントを変更するためにオンとオフを切り替えることができます)。
メモリが非常に不足している場合は、Petit FatFs もありますが、デフォルトでは書き込みサポートがなく、追加するには多少の作業が必要です。

ドライブをマウントしたら、ファイル開いて作成するだけです。例えば:

FATFS fatFs;
FIL newFile;

// The drive number may differ 
if (f_mount(0, &fatFs) != FR_OK) {
  // Something went wrong
}

if (f_open(&newFile, "/test.txt", FA_WRITE | FA_OPEN_ALWAYS) != FR_OK) {
  // Something went wrong
}

独自のコードのみを使用してファイルを作成する必要がある場合は、FAT を走査して空き領域を探し、新しい LFN エントリ (ファイル名を保存する場所) と DIRENT (ディスク上のクラスタを指定する) を作成する必要があります。ファイルデータを保持します)。
これがある種の宿題/実験演習である場合を除いて、これを行う理由はわかりません。いずれにせよ、最初に FAT 構造について読んでから、作業を開始したら、より具体的な質問に戻る必要があります。

于 2013-04-07T08:42:49.220 に答える