From 70702af1370e44e32fb2c3c507e4759a187b4fe5 Mon Sep 17 00:00:00 2001 From: Leo C Date: Thu, 8 Sep 2016 19:15:27 +0200 Subject: Import fatfs R0.12b --- fatfs/doc/ja/mkfs.html | 65 ++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 31 deletions(-) (limited to 'fatfs/doc/ja/mkfs.html') diff --git a/fatfs/doc/ja/mkfs.html b/fatfs/doc/ja/mkfs.html index 19b4341..b237e6b 100644 --- a/fatfs/doc/ja/mkfs.html +++ b/fatfs/doc/ja/mkfs.html @@ -13,12 +13,14 @@
論理ドライブ上にFATボリュームを作成(フォーマット)します。
+論理ドライブ上にFAT/exFATボリュームを作成(フォーマット)します。
FRESULT f_mkfs ( - const TCHAR* path, /* [IN] 論理ドライブ番号 */ - BYTE sfd, /* [IN] 区画作成方法 */ - UINT au /* [IN] クラス タサイズ */ + const TCHAR* path, /* [IN] 論理ドライブ番号 */ + BYTE opt, /* [IN] フォーマット オプション */ + DWORD au, /* [IN] クラスタ サイズ */ + void* work, /* [-] ワーク エリア */ + UINT len /* [IN] ワーク エリアのサイズ */ );
物理ドライブ上にFATボリュームを作成します。FDISK形式が指定された場合は、物理ドライブ全体を占める基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。SFD形式では、FATボリュームが物理ドライブの先頭セクタからベタで作成されます。
-フォーマットする論理ドライブがマルチ パーテーション機能(_MULTI_PARTITION)によって特定の区画(1~4)に結び付けられている場合は、その区画の中にFATボリュームが作成されます。sfdは無視され、また対応する物理ドライブはこれに先立ち、f_fdisk()または他のツールで適切に区画設定されている必要があります。
-パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、MMC、SDC、CFC、U Diskなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができます。区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー ディスク、マイクロドライブ、光学ディスク、およびその他スーパー フロッピー メディアで標準的に使用されています。
-FATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上のクラスタ数によってのみ決定される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム サイズとクラスタ サイズに依存します。クラスタ サイズは大きくするほど性能が上がります。
-クラスタ数がFATタイプの境界に近くなるときは、FR_MKFS_ABORTEDで関数が失敗する可能性があります。
+exFAT以外のボリュームのFATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上のクラスタ数によってのみ決定される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム サイズとクラスタ サイズに依存します。そのボリュームのサイズにおいて、指定されたFATタイプとクラスタ サイズの組み合わせが成立し得ないときは、関数はFR_MKFS_ABORTEDで失敗します。
+クラスタとは、データ格納領域の管理の単位のことで、これを単位にファイルにデータ領域が割り当てられます。たとえば、クラスタ サイズが32768のときは、100バイトのファイルも32768バイトのスペースを消費することになります。このように、クラスタ サイズを大きくするほどボリュームの利用効率が悪くなりますが、その一方で読み書きの性能は上がります。クラスタ サイズによる利用効率と性能はトレード オフの関係にあります。GBクラスのストレージでは、極端に多くのファイルを扱わない限り32768バイト以上に(デフォルト指定ではそのようになる)しておくとよいでしょう。
+パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、マルチメディアカード、SDカード、CFカード、USBメモリなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができ、区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー ディスク、マイクロドライブ、光学ディスク、およびその他スーパー フロッピー メディアで標準的に使用されています。システムによっては、FDISK形式またはSFD形式のどちらか一方のみをサポートし他方をサポートしません。
+FM_SFDが指定されないときはFDISK形式となり、その物理ドライブ全体を占める1個の基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。FM_SFDが指定されたときはSFD形式となり、FATボリュームがその物理ドライブの先頭セクタからベタで作成されます。
+マルチ パーテーション機能(_MULTI_PARTITION)により、その論理ドライブが特定の区画(1~4)に結び付けられている場合は、その区画の中にFATボリュームが作成されます。FM_SFDの指定は無視され、その物理ドライブはこれに先立ち、f_fdisk関数または他のツールで適切に区画設定されている必要があります。
_FS_READONLY == 0で、且つ_USE_MKFS == 1のとき使用可能です。
@@ -66,43 +70,42 @@ FRESULT f_mkfs (-/* Format the default drive */ +/* Format default drive and create a file */ int main (void) { - FATFS fs; /* File system object (volume work area) */ - FIL fil; /* File object */ - FRESULT res; /* API result code */ - UINT bw; /* Bytes written */ + FATFS fs; /* File system object */ + FIL fil; /* File object */ + FRESULT res; /* API result code */ + UINT bw; /* Bytes written */ + BYTE work[_MAX_SS]; /* Work area (larger is better for process time) */ + + /* Create FAT volume */ + res = f_mkfs("", FM_ANY, 0, work, sizeof work); + if (res) ... /* Register work area */ f_mount(&fs, "", 0); - /* Create FAT volume with default cluster size */ - res = f_mkfs("", 0, 0); - if (res) ... - /* Create a file as new */ - res = f_open(&fil, "hello.txt", FA_CREATE_NEW | FA_WRITE); + res = f_open(&fil, "hello.txt", FA_CREATE_NEW | FA_WRITE); if (res) ... /* Write a message */ - f_write(&fil, "Hello, World!\r\n", 15, &bw); + f_write(&fil, "Hello, World!\r\n", 15, &bw); if (bw != 15) ... /* Close the file */ - f_close(&fil); - - /* Unregister work area */ - f_mount(0, "", 0); + f_close(&fil); + ...