FatFs R0.10c, released November 9, 2014

This commit is contained in:
Christopher Williams
2015-01-31 09:29:37 -07:00
parent 762b341574
commit 0e89a5798f
79 changed files with 1601 additions and 1367 deletions
+17 -17
View File
@@ -12,28 +12,28 @@
<body>
<h1>パス名のフォーマット</h1>
<div class="para" id="nam">
<h3>ファイルディレクトリ名</h3>
<h3>ファイル ディレクトリ名</h3>
<p>FatFsモジュールでのファイル、ディレクトリ、ドライブの指定方法はDOS/Windows APIとほぼ同じです。パス名のフォーマットは次の通りです。</p>
<pre>"[論理ドライブ番号:][/]ディレクトリ名/ファイル名"</pre>
<p>FatFsモジュールは長いファイル名(LFN)および8.3形式ファイル名(SFN)に対応しています。LFNは、(<tt>_USE_LFN &gt; 0</tt>)のとき使用可能になります。ディレクトリセパレータにはDOS/Windows APIと同じく<tt>'/'</tt><tt>'\'</tt>を使用します。連続したセパレータは無視され1個として扱われます。唯一の違いは、論理ドライブの指定だけです。論理ドライブ番号は、<tt>'0'</tt><tt>'9'</tt>の一文字の数字とコロンで指定し、省略した場合は<em>デフォルトドライブ</em>(0またはカレントドライブ)が選択されます。</p>
<p>FatFsモジュールは長いファイル名(LFN)および8.3形式ファイル名(SFN)に対応しています。LFNは、(<tt>_USE_LFN &gt; 0</tt>)のとき使用可能になります。ディレクトリ セパレータにはDOS/Windows APIと同じく<tt>'/'</tt><tt>'\'</tt>を使用します。連続したセパレータは無視され1個として扱われます。唯一の違いは、論理ドライブの指定だけです。論理ドライブ番号は、<tt>'0'</tt><tt>'9'</tt>の一文字の数字とコロンで指定し、省略した場合は<em>デフォルト ドライブ</em>(0またはカレント ドライブ)が選択されます。</p>
<p>ヌル文字や制御文字(<tt>'\0'</tt><tt>'\x1F'</tt>)は、パス名の終端として認識されます。パス名に先行あるいは中に含まれるスペースは、LFN構成では名前の一部として有効ですが、非LFN構成ではスペースはパス名の終端として認識されます。</p>
<p>標準構成(<tt>_FS_RPATH == 0</tt>)のときは、全てのオブジェクトがルートディレクトリから辿る絶対パスで指定されます。OS指向なカレントディレクトリという概念は無く、またドットディレクトリ(&quot;.&quot;&quot;..&quot;)は使用できません。パス名先頭のセパレータは無視されます。デフォルトドライブ番号は常に0になります。</p>
<p>相対パスを有効(<tt>_FS_RPATH == 1</tt>)にしたときは、先行するセパレータの有無によって検索開始ディレクトリが変わり、セパレータがある場合はルートディレクトリから、無い場合は<a href="chdir.html"><tt>f_chdir()</tt></a>で設定されるカレントディレクトリからになります。またパス名にドットディレクトリが使用できます。デフォルトドライブ番号は<a href="chdrive.html"><tt>f_chdrive()</tt></a>で設定された値となります。</p>
<p>標準構成(<tt>_FS_RPATH == 0</tt>)のときは、全てのオブジェクトがルート ディレクトリから辿る絶対パスで指定されます。OS指向なカレント ディレクトリという概念は無く、またドット ディレクトリ(&quot;.&quot;&quot;..&quot;)は使用できません。パス名先頭のセパレータは無視されます。デフォルト ドライブ番号は常に0になります。</p>
<p>相対パスを有効(<tt>_FS_RPATH == 1</tt>)にしたときは、先行するセパレータの有無によって検索開始ディレクトリが変わり、セパレータがある場合はルート ディレクトリから、無い場合は<a href="chdir.html"><tt>f_chdir()</tt></a>で設定されるカレント ディレクトリからになります。またパス名にドット ディレクトリが使用できます。デフォルト ドライブ番号は<a href="chdrive.html"><tt>f_chdrive()</tt></a>で設定された値となります。</p>
<table class="lst2">
<tr><td>パス名の例</td><td>_FS_RPATH == 0</td><td>_FS_RPATH == 1</td></tr>
<tr class="lst3"><td>file.txt</td><td>ドライブ0のルートディレクトリ下のファイル</td><td>カレントドライブのカレントディレクトリ下のファイル</td></tr>
<tr><td>/file.txt</td><td>ドライブ0のルートディレクトリ下のファイル</td><td>カレントドライブのルートディレクトリ下のファイル</td></tr>
<tr><td></td><td>ドライブ0のルートディレクトリ</td><td>カレントドライブのカレントディレクトリ</td></tr>
<tr><td>2:</td><td>ドライブ2のルートディレクトリ</td><td>ドライブ2のカレントディレクトリ</td></tr>
<tr><td>2:file1.txt</td><td>ドライブ2のルートディレクトリ下のファイル</td><td>ドライブ2のカレントディレクトリ下のファイル</td></tr>
<tr><td>2:/</td><td>ドライブ2のルートディレクトリ</td><td>ドライブ2のルートディレクトリ</td></tr>
<tr class="lst3"><td>file.txt</td><td>ドライブ0のルート ディレクトリ下のファイル</td><td>カレント ドライブのカレント ディレクトリ下のファイル</td></tr>
<tr><td>/file.txt</td><td>ドライブ0のルート ディレクトリ下のファイル</td><td>カレント ドライブのルート ディレクトリ下のファイル</td></tr>
<tr><td></td><td>ドライブ0のルート ディレクトリ</td><td>カレント ドライブのカレント ディレクトリ</td></tr>
<tr><td>2:</td><td>ドライブ2のルート ディレクトリ</td><td>ドライブ2のカレント ディレクトリ</td></tr>
<tr><td>2:file1.txt</td><td>ドライブ2のルート ディレクトリ下のファイル</td><td>ドライブ2のカレント ディレクトリ下のファイル</td></tr>
<tr><td>2:/</td><td>ドライブ2のルート ディレクトリ</td><td>ドライブ2のルート ディレクトリ</td></tr>
<tr><td>../file.txt</td><td>無効</td><td>親ディレクトリ下のファイル</td></tr>
<tr><td>.</td><td>無効</td><td>このディレクトリ</td></tr>
<tr><td>..</td><td>無効</td><td>カレントディレクトリの親ディレクトリ</td></tr>
<tr><td>dir1/..</td><td>無効</td><td>カレントディレクトリ</td></tr>
<tr><td>/..</td><td>無効</td><td>ルートディレクトリ(その上は辿れない)</td></tr>
<tr><td>..</td><td>無効</td><td>カレント ディレクトリの親ディレクトリ</td></tr>
<tr><td>dir1/..</td><td>無効</td><td>カレント ディレクトリ</td></tr>
<tr><td>/..</td><td>無効</td><td>ルート ディレクトリ(その上は辿れない)</td></tr>
</table>
<p>また、<tt>_STR_VOLUME_ID</tt>オプションを有効にすることでドライブ番号の識別には数字のほか、任意の文字列を使用することも可能になります。</p>
<p>また、<tt>_STR_VOLUME_ID</tt>オプションを有効にすることでドライブ番号の識別には数字のほか、<tt>"sd:file1.txt"</tt><tt>"ram:swapfile.dat"</tt>のように、任意の文字列を使用することも可能になります。</p>
</div>
<p><br></p>
@@ -62,13 +62,13 @@ PARTITION VolToPart[] = {
{0, 3}, <span class="c">/* 論理ドライブ 2 ==> 物理ドライブ 0, 第3区画 */</span>
{1, 0} <span class="c">/* 論理ドライブ 3 ==> 物理ドライブ 1, 自動検出 */</span>
};
<img src="../img/f7.png" width="828" height="288" alt="論理ドライブと物理ドライブの関係">
</pre>
<div><img src="../img/f7.png" width="828" height="288" alt="論理ドライブと物理ドライブの関係"></div>
<p>複数区画指定を使用する場合、次の点に注意しなければなりません。
<ul>
<li>マウント可能な区画は基本区画のみで、拡張区画内には対応しない。</li>
<li>複数のマウントされた区画を持つ物理ドライブは、非リムーバブルでなければならず、システム動作中のメディア交換は禁止。</li>
<li>基本区画のみマウント可能で、拡張区画内の区画には対応しない。</li>
<li>Windowsは、リムーバブル ドライブでは複数区画をサポートせず、先頭区画のみ認識する。</li>
</ul>
</div>