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 構造について読んでから、作業を開始したら、より具体的な質問に戻る必要があります。