]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - fatfs/doc/ja/mkfs.html
Merge branch 'chan-fatfs' into fatfs-integration
[z180-stamp.git] / fatfs / doc / ja / mkfs.html
index 19b4341eb9bc61a330662392574df11877dd7256..b237e6bdb163a585fc218a5144ff07cd5ccb684d 100644 (file)
 \r
 <div class="para func">\r
 <h2>f_mkfs</h2>\r
-<p>論理ドライブ上にFATボリュームを作成(フォーマット)します。</p>\r
+<p>論理ドライブ上にFAT/exFATボリュームを作成(フォーマット)します。</p>\r
 <pre>\r
 FRESULT f_mkfs (\r
-  const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] 論理ドライブ番号 */</span>\r
-  BYTE  <span class="arg">sfd</span>,         <span class="c">/* [IN] 区画作成方法 */</span>\r
-  UINT  <span class="arg">au</span>           <span class="c">/* [IN] クラス タサイズ */</span>\r
+  const TCHAR* <span class="arg">path</span>,  <span class="c">/* [IN] 論理ドライブ番号 */</span>\r
+  BYTE  <span class="arg">opt</span>,          <span class="c">/* [IN] フォーマット オプション */</span>\r
+  DWORD <span class="arg">au</span>,           <span class="c">/* [IN] クラスタ サイズ */</span>\r
+  void* <span class="arg">work</span>,         <span class="c">/* [-]  ワーク エリア */</span>\r
+  UINT <span class="arg">len</span>            <span class="c">/* [IN] ワーク エリアのサイズ */</span>\r
 );\r
 </pre>\r
 </div>\r
@@ -27,11 +29,15 @@ FRESULT f_mkfs (
 <h4>引数</h4>\r
 <dl class="par">\r
 <dt>path</dt>\r
-<dd>ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88対象ã\81®è«\96ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\82\92示ã\81\99<a href="filename.html">ã\83\91ã\82¹å\90\8d</a>ã\82\92示ã\81\99ã\83\8cã\83«æ\96\87å­\97<tt>'\0'</tt>çµ\82端ã\81®æ\96\87å­\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82ã\83\89ã\83©ã\82¤ã\83\96ç\95ªå\8f·ã\82\92å\90«ã\81¾ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\82«ã\83¬ã\83³ã\83\88 ã\83\89ã\83©ã\82¤ã\83\96ã\82\92æ\84\8få\91³ã\81\97ã\81¾ã\81\99。</dd>\r
-<dt>sfd</dt>\r
-<dd>ã\83\91ã\83¼ã\83\86ã\83¼ã\82·ã\83§ã\83³å½¢å¼\8fã\80\82(0(FDISK) ã\81¾ã\81\9fã\81¯ 1(SFD))</dd>\r
+<dd>ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88対象ã\81®è«\96ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\82\92示ã\81\99<a href="filename.html">ã\83\91ã\82¹å\90\8d</a>ã\82\92示ã\81\99ã\83\8cã\83«æ\96\87å­\97<tt>'\0'</tt>çµ\82端ã\81®æ\96\87å­\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82ã\83\89ã\83©ã\82¤ã\83\96ç\95ªå\8f·ã\82\92å\90«ã\81¾ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88 ã\83\89ã\83©ã\82¤ã\83\96ã\82\92æ\84\8få\91³ã\81\97ã\81¾ã\81\99ã\80\82è«\96ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\81«ã\81¯<tt>f_mount</tt>é\96¢æ\95°ã\81§ã\83¯ã\83¼ã\82¯ã\82¨ã\83ªã\82¢ã\81\8cä¸\8eã\81\88ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81¯ã\81\82ã\82\8aã\81¾ã\81\9bã\82\93。</dd>\r
+<dt>opt</dt>\r
+<dd>ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88 ã\82ªã\83\97ã\82·ã\83§ã\83³ã\80\82<tt>FM_FAT, FM_FAT32, FM_EXFAT</tt>ã\81®å\90\84ã\83\95ã\83©ã\82°ã\81®çµ\84ã\81¿å\90\88ã\82\8fã\81\9b(<tt>FM_ANY</tt>ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ORå\80¤)ã\81§ä½\9cæ\88\90ã\81\99ã\82\8bFATã\83\9cã\83ªã\83¥ã\83¼ã\83 ã\81®ã\82¿ã\82¤ã\83\97ã\82\92æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82è¤\87æ\95°ã\81®ã\82¿ã\82¤ã\83\97ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81ã\81\9dã\81®ä¸­ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8cè\87ªå\8b\95é\81¸æ\8a\9eã\81\95ã\82\8cã\81¾ã\81\99ã\80\82exFATã\81\8cç\84¡å\8a¹ã\81®ã\81¨ã\81\8dã\81¯ã\80\81<tt>FM_EXFAT</tt>ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82<tt>FM_SFD</tt>ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81SFDå½¢å¼\8f(å¾\8cè¿°)ã\81§ã\83\9cã\83ªã\83¥ã\83¼ã\83 ã\82\92é\85\8dç½®ã\81\97ã\81¾ã\81\99ã\80\82</dd>\r
 <dt>au</dt>\r
-<dd>クラスタ サイズをバイト数またはセクタ数で指定します。値が1~128の範囲場合は、セクタ数を示します。値が<tt>_MIN_SS</tt>以上の場合は、バイト数を示します。無効値(0または2の累乗でない値など)を指定した場合、ボリュームのサイズに応じたデフォルトのクラスタ サイズが自動選択されます。</dd>\r
+<dd>クラスタ サイズをバイト単位で指定します。有効値は、セクタ サイズのN倍となります。Nは2の累乗で、FAT/FAT32ボリュームでは1~128、exFATボリュームでは1~32768です。0を指定した場合は、ボリュームのサイズと選択されたFATタイプに応じたデフォルトのクラスタ サイズが選択されます。</dd>\r
+<dt>work</dt>\r
+<dd>ワークエリアへのポインタを指定します。</dd>\r
+<dt>len</dt>\r
+<dd>ワークエリアのサイズをバイト単位で指定します。ワークエリアのサイズは少なくとも関連するドライブのセクタサイズは必要です。また、十分に大きなサイズを与えることにより、書き込みトランザクションの回数が減ってフォーマット時間を短縮できます。</dd>\r
 </dl>\r
 </div>\r
 \r
@@ -41,7 +47,6 @@ FRESULT f_mkfs (
 <a href="rc.html#ok">FR_OK</a>,\r
 <a href="rc.html#de">FR_DISK_ERR</a>,\r
 <a href="rc.html#nr">FR_NOT_READY</a>,\r
-<a href="rc.html#ne">FR_NOT_ENABLED</a>,\r
 <a href="rc.html#ma">FR_MKFS_ABORTED</a>,\r
 <a href="rc.html#ip">FR_INVALID_PARAMETER</a>\r
 </p>\r
@@ -49,14 +54,13 @@ FRESULT f_mkfs (
 \r
 <div class="para desc">\r
 <h4>説明</h4>\r
-<p>物理ドライブ上にFATボリュームを作成します。FDISK形式が指定された場合は、物理ドライブ全体を占める基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。SFD形式では、FATボリュームが物理ドライブの先頭セクタからベタで作成されます。</p>\r
-<p>ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81\99ã\82\8bè«\96ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\81\8cã\83\9eã\83«ã\83\81 ã\83\91ã\83¼ã\83\86ã\83¼ã\82·ã\83§ã\83³æ©\9fè\83½(<tt>_MULTI_PARTITION</tt>)ã\81«ã\82\88ã\81£ã\81¦ç\89¹å®\9aã\81®å\8cºç\94»(1ï½\9e4)ã\81«çµ\90ã\81³ä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®å\8cºç\94»ã\81®ä¸­ã\81«FATã\83\9cã\83ªã\83¥ã\83¼ã\83 ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82<tt class="arg">sfd</tt>ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\80\81ã\81¾ã\81\9f対å¿\9cã\81\99ã\82\8bç\89©ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\81¯ã\81\93ã\82\8cã\81«å\85\88ç«\8bã\81¡ã\80\81<tt>f_fdisk()</tt>ã\81¾ã\81\9fã\81¯ä»\96ã\81®ã\83\84ã\83¼ã\83«ã\81§é\81©å\88\87ã\81«å\8cºç\94»è¨­å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99。</p>\r
-<p>パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、MMC、SDC、CFC、U Diskなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができます。区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー ディスク、マイクロドライブ、光学ディスク、およびその他スーパー フロッピー メディアで標準的に使用されています。</p>\r
-<p>FATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上の<em>クラスタ数によってのみ決定</em>される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム サイズとクラスタ サイズに依存します。クラスタ サイズは大きくするほど性能が上がります。</p>\r
-<p>ã\82¯ã\83©ã\82¹ã\82¿æ\95°ã\81\8cFATã\82¿ã\82¤ã\83\97ã\81®å¢\83ç\95\8cã\81«è¿\91ã\81\8fã\81ªã\82\8bã\81¨ã\81\8dã\81¯ã\80\81<tt>FR_MKFS_ABORTED</tt>ã\81§é\96¢æ\95°ã\81\8c失æ\95\97ã\81\99ã\82\8bå\8f¯è\83½æ\80§があります。</p>\r
+<p>exFAT以外のボリュームのFATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上の<em>クラスタ数によってのみ決定</em>される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム サイズとクラスタ サイズに依存します。そのボリュームのサイズにおいて、指定されたFATタイプとクラスタ サイズの組み合わせが成立し得ないときは、関数は<tt>FR_MKFS_ABORTED</tt>で失敗します。</p>\r
+<p>ã\82¯ã\83©ã\82¹ã\82¿ã\81¨ã\81¯ã\80\81ã\83\87ã\83¼ã\82¿æ ¼ç´\8dé \98å\9f\9fã\81®ç®¡ç\90\86ã\81®å\8d\98ä½\8dã\81®ã\81\93ã\81¨ã\81§ã\80\81ã\81\93ã\82\8cã\82\92å\8d\98ä½\8dã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\83\87ã\83¼ã\82¿é \98å\9f\9fã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¾ã\81\99ã\80\82ã\81\9fã\81¨ã\81\88ã\81°ã\80\81ã\82¯ã\83©ã\82¹ã\82¿ ã\82µã\82¤ã\82ºã\81\8c32768ã\81®ã\81¨ã\81\8dã\81¯ã\80\81100ã\83\90ã\82¤ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\8232768ã\83\90ã\82¤ã\83\88ã\81®ã\82¹ã\83\9aã\83¼ã\82¹ã\82\92æ¶\88è²»ã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8aã\81¾ã\81\99ã\80\82ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\80\81ã\82¯ã\83©ã\82¹ã\82¿ ã\82µã\82¤ã\82ºã\82\92大ã\81\8dã\81\8fã\81\99ã\82\8bã\81»ã\81©ã\83\9cã\83ªã\83¥ã\83¼ã\83 ã\81®å\88©ç\94¨å\8a¹ç\8e\87ã\81\8cæ\82ªã\81\8fã\81ªã\82\8aã\81¾ã\81\99ã\81\8cã\80\81ã\81\9dã\81®ä¸\80æ\96¹ã\81§èª­ã\81¿æ\9b¸ã\81\8dã\81®æ\80§è\83½ã\81¯ä¸\8aã\81\8cã\82\8aã\81¾ã\81\99ã\80\82ã\82¯ã\83©ã\82¹ã\82¿ ã\82µã\82¤ã\82ºã\81«ã\82\88ã\82\8bå\88©ç\94¨å\8a¹ç\8e\87ã\81¨æ\80§è\83½ã\81¯ã\83\88ã\83¬ã\83¼ã\83\89 ã\82ªã\83\95ã\81®é\96¢ä¿\82ã\81«ã\81\82ã\82\8aã\81¾ã\81\99ã\80\82GBã\82¯ã\83©ã\82¹ã\81®ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\81§ã\81¯ã\80\81極端ã\81«å¤\9aã\81\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ\89±ã\82\8fã\81ªã\81\84é\99\90ã\82\8a32768ã\83\90ã\82¤ã\83\88以ä¸\8aã\81«(ã\83\87ã\83\95ã\82©ã\83«ã\83\88æ\8c\87å®\9aã\81§ã\81¯ã\81\9dã\81®ã\82\88ã\81\86ã\81«ã\81ªã\82\8b\81\97ã\81¦ã\81\8aã\81\8fã\81¨ã\82\88ã\81\84ã\81§ã\81\97ã\82\87ã\81\86。</p>\r
+<p>パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、マルチメディアカード、SDカード、CFカード、USBメモリなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができ、区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー ディスク、マイクロドライブ、光学ディスク、およびその他スーパー フロッピー メディアで標準的に使用されています。システムによっては、FDISK形式またはSFD形式のどちらか一方のみをサポートし他方をサポートしません。</p>\r
+<p><tt>FM_SFD</tt>が指定されないときはFDISK形式となり、その物理ドライブ全体を占める1個の基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。<tt>FM_SFD</tt>が指定されたときはSFD形式となり、FATボリュームがその物理ドライブの先頭セクタからベタで作成されます。</p>\r
+<p>ã\83\9eã\83«ã\83\81 ã\83\91ã\83¼ã\83\86ã\83¼ã\82·ã\83§ã\83³æ©\9fè\83½(<tt><a href="config.html#multi_partition">_MULTI_PARTITION</a></tt>)ã\81«ã\82\88ã\82\8aã\80\81ã\81\9dã\81®è«\96ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\81\8cç\89¹å®\9aã\81®å\8cºç\94»(1ï½\9e4)ã\81«çµ\90ã\81³ä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®å\8cºç\94»ã\81®ä¸­ã\81«FATã\83\9cã\83ªã\83¥ã\83¼ã\83 ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82<tt>FM_SFD</tt>ã\81®æ\8c\87å®\9aã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\80\81ã\81\9dã\81®ç\89©ç\90\86ã\83\89ã\83©ã\82¤ã\83\96ã\81¯ã\81\93ã\82\8cã\81«å\85\88ç«\8bã\81¡ã\80\81<tt>f_fdisk</tt>é\96¢æ\95°ã\81¾ã\81\9fã\81¯ä»\96ã\81®ã\83\84ã\83¼ã\83«ã\81§é\81©å\88\87ã\81«å\8cºç\94»è¨­å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå¿\85è¦\81があります。</p>\r
 </div>\r
 \r
-\r
 <div class="para comp">\r
 <h4>対応情報</h4>\r
 <p><tt>_FS_READONLY == 0</tt>で、且つ<tt>_USE_MKFS == 1</tt>のとき使用可能です。</p>\r
@@ -66,43 +70,42 @@ FRESULT f_mkfs (
 <div class="para use">\r
 <h4>使用例</h4>\r
 <pre>\r
-<span class="c">/* Format the default drive */</span>\r
+<span class="c">/* Format default drive and create a file */</span>\r
 int main (void)\r
 {\r
-    FATFS fs;      <span class="c">/* File system object (volume work area) */</span>\r
-    FIL fil;       <span class="c">/* File object */</span>\r
-    FRESULT res;   <span class="c">/* API result code */</span>\r
-    UINT bw;       <span class="c">/* Bytes written */</span>\r
+    FATFS fs;           <span class="c">/* File system object */</span>\r
+    FIL fil;            <span class="c">/* File object */</span>\r
+    FRESULT res;        <span class="c">/* API result code */</span>\r
+    UINT bw;            <span class="c">/* Bytes written */</span>\r
+    BYTE work[_MAX_SS]; <span class="c">/* Work area (larger is better for process time) */</span>\r
+\r
 \r
+    <span class="c">/* Create FAT volume */</span>\r
+    res = f_mkfs("", FM_ANY, 0, work, sizeof work);\r
+    if (res) ...\r
 \r
     <span class="c">/* Register work area */</span>\r
     f_mount(&amp;fs, "", 0);\r
 \r
-    <span class="c">/* Create FAT volume with default cluster size */</span>\r
-    res = f_mkfs("", 0, 0);\r
-    if (res) ...\r
-\r
     <span class="c">/* Create a file as new */</span>\r
-    res = f_open(&fil, "hello.txt", FA_CREATE_NEW | FA_WRITE);\r
+    res = f_open(&amp;fil, "hello.txt", FA_CREATE_NEW | FA_WRITE);\r
     if (res) ...\r
 \r
     <span class="c">/* Write a message */</span>\r
-    f_write(&fil, "Hello, World!\r\n", 15, &bw);\r
+    f_write(&amp;fil, "Hello, World!\r\n", 15, &amp;bw);\r
     if (bw != 15) ...\r
 \r
     <span class="c">/* Close the file */</span>\r
-    f_close(&fil);\r
-\r
-    <span class="c">/* Unregister work area */</span>\r
-    f_mount(0, "", 0);\r
+    f_close(&amp;fil);\r
 \r
+    ...\r
 </pre>\r
 </div>\r
 \r
 \r
 <div class="para ref">\r
 <h4>参照</h4>\r
-<p><tt><a href="filename.html#vol">ボリューム管理</a>, <a href="fdisk.html">f_fdisk</a></tt></p>\r
+<p><a href="../res/mkfs.xls">ボリューム サイズとフォーマット パラメータ</a>, <a href="filename.html#vol">ボリューム管理</a>, <tt><a href="fdisk.html">f_fdisk</a></tt></p>\r
 </div>\r
 \r
 \r