From a6163888f3c56123b1db313743c6147ba498732c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 8 Aug 2014 14:42:07 +0300 Subject: Add third_party libs --- third_party/fatfs/doc/ja/appnote.html | 125 +++++++++++++++++++++++++++++ third_party/fatfs/doc/ja/chmod.html | 89 +++++++++++++++++++++ third_party/fatfs/doc/ja/close.html | 60 ++++++++++++++ third_party/fatfs/doc/ja/dinit.html | 44 +++++++++++ third_party/fatfs/doc/ja/dioctl.html | 65 +++++++++++++++ third_party/fatfs/doc/ja/dread.html | 58 ++++++++++++++ third_party/fatfs/doc/ja/dstat.html | 47 +++++++++++ third_party/fatfs/doc/ja/dwrite.html | 66 ++++++++++++++++ third_party/fatfs/doc/ja/fattime.html | 50 ++++++++++++ third_party/fatfs/doc/ja/filename.html | 56 +++++++++++++ third_party/fatfs/doc/ja/getfree.html | 91 +++++++++++++++++++++ third_party/fatfs/doc/ja/lseek.html | 87 ++++++++++++++++++++ third_party/fatfs/doc/ja/mkdir.html | 83 ++++++++++++++++++++ third_party/fatfs/doc/ja/mkfs.html | 73 +++++++++++++++++ third_party/fatfs/doc/ja/mount.html | 59 ++++++++++++++ third_party/fatfs/doc/ja/mountdrv.html | 58 ++++++++++++++ third_party/fatfs/doc/ja/open.html | 135 ++++++++++++++++++++++++++++++++ third_party/fatfs/doc/ja/opendir.html | 73 +++++++++++++++++ third_party/fatfs/doc/ja/read.html | 71 +++++++++++++++++ third_party/fatfs/doc/ja/readdir.html | 89 +++++++++++++++++++++ third_party/fatfs/doc/ja/rename.html | 86 ++++++++++++++++++++ third_party/fatfs/doc/ja/sdir.html | 42 ++++++++++ third_party/fatfs/doc/ja/sfatfs.html | 63 +++++++++++++++ third_party/fatfs/doc/ja/sfile.html | 54 +++++++++++++ third_party/fatfs/doc/ja/sfileinfo.html | 43 ++++++++++ third_party/fatfs/doc/ja/stat.html | 73 +++++++++++++++++ third_party/fatfs/doc/ja/sync.html | 61 +++++++++++++++ third_party/fatfs/doc/ja/unlink.html | 68 ++++++++++++++++ third_party/fatfs/doc/ja/write.html | 71 +++++++++++++++++ 29 files changed, 2040 insertions(+) create mode 100644 third_party/fatfs/doc/ja/appnote.html create mode 100644 third_party/fatfs/doc/ja/chmod.html create mode 100644 third_party/fatfs/doc/ja/close.html create mode 100644 third_party/fatfs/doc/ja/dinit.html create mode 100644 third_party/fatfs/doc/ja/dioctl.html create mode 100644 third_party/fatfs/doc/ja/dread.html create mode 100644 third_party/fatfs/doc/ja/dstat.html create mode 100644 third_party/fatfs/doc/ja/dwrite.html create mode 100644 third_party/fatfs/doc/ja/fattime.html create mode 100644 third_party/fatfs/doc/ja/filename.html create mode 100644 third_party/fatfs/doc/ja/getfree.html create mode 100644 third_party/fatfs/doc/ja/lseek.html create mode 100644 third_party/fatfs/doc/ja/mkdir.html create mode 100644 third_party/fatfs/doc/ja/mkfs.html create mode 100644 third_party/fatfs/doc/ja/mount.html create mode 100644 third_party/fatfs/doc/ja/mountdrv.html create mode 100644 third_party/fatfs/doc/ja/open.html create mode 100644 third_party/fatfs/doc/ja/opendir.html create mode 100644 third_party/fatfs/doc/ja/read.html create mode 100644 third_party/fatfs/doc/ja/readdir.html create mode 100644 third_party/fatfs/doc/ja/rename.html create mode 100644 third_party/fatfs/doc/ja/sdir.html create mode 100644 third_party/fatfs/doc/ja/sfatfs.html create mode 100644 third_party/fatfs/doc/ja/sfile.html create mode 100644 third_party/fatfs/doc/ja/sfileinfo.html create mode 100644 third_party/fatfs/doc/ja/stat.html create mode 100644 third_party/fatfs/doc/ja/sync.html create mode 100644 third_party/fatfs/doc/ja/unlink.html create mode 100644 third_party/fatfs/doc/ja/write.html (limited to 'third_party/fatfs/doc/ja') diff --git a/third_party/fatfs/doc/ja/appnote.html b/third_party/fatfs/doc/ja/appnote.html new file mode 100644 index 0000000..ab82799 --- /dev/null +++ b/third_party/fatfs/doc/ja/appnote.html @@ -0,0 +1,125 @@ + + + + + + + +FatFsモジュール アプリケーション・ノート + + + +

FatFsモジュール アプリケーション・ノート

+
+ +
+

移植の際に配慮すべきこと

+

FatFsモジュールは移植性に関して次の点を前提としています。

+ +
+ +
+

メモリ使用量 (R0.04b)

+

各種環境でのモジュールのメモリ使用量の例を示します。数値の単位はバイトで、Dは論理ドライブ数、Fは同時オープン・ファイル数を示します。最適化オプションは、全てコード・サイズとしています。

+ + + + + + + + + + + + + + + + +
AVRH8/300HMSP430TLCS-870/CV850ESSH2
コンパイラgccCH38CL430CC870CCA850SHC
_MCU_ENDIAN122112
FatFs コード
(標準, R/W構成)
8722877664027338
FatFs コード
(最小, R/W構成)
5814572240944906
FatFs コード
(標準, R/O構成)
4248409630103506
FatFs コード
(最小, R/O構成)
3038311022102698
FatFs 静的ワークD*2 + 2D*4 + 2D*4 + 2D*4 + 2
FatFs 動的ワークD*554 + F*544D*554 + F*550D*554 + F*550D*554 + F*550
Tiny-FatFs コード
(標準, R/W構成)
7264724066348837
Tiny-FatFs コード
(最小, R/W構成)
4750480643666163
Tiny-FatFs コード
(標準, R/O構成)
3600354832124347
Tiny-FatFs コード
(最小, R/O構成)
2568270223943322
Tiny-FatFs 静的ワーク4644
Tiny-FatFs 動的ワーク544 + F*28544 + F*32544 + F*28544 + F*28
+
+ +
+

FatFs vs. Tiny-FatFs

+

ポータブル・オーディオやデータ・ロガーなど、よくある用途ではTiny-FatFsで十分です。しかし、Tiny-FatFsは標準構成ではFAT32に対応していないので、使用できるディスクは2GB(FAT64で4GB)までという制約があります。_FAT32オプションでFAT32対応を追加できますが、その分コード・サイズが膨らみます。フル機能のFatFsは、複数ファイルを高速アクセスする場合や、複数ドライブの対応が必要な場合に有効です。

+
+ + + + + +
メモリ容量FATタイプ
<= 64MBFAT12
128MB〜2GBFAT16
>= 4GBFAT32
+
+

2GBまでのカードに限るなら、FAT32への対応は不要です。右の表にメモリ・カードの容量と規定のFATタイプ(SDメモリの場合)を示します。メモリ・カードの出荷時は、最大のパフォーマンスが出るようにデータ領域の境界が調整されたフォーマットになっています。したがって、PCでフォーマットするなどして規定と違うフォーマットになると、書き込み性能が大幅に低下する場合があるので注意が必要です。

+
+ +
+

効率の良いファイル・アクセスの方法

+

資源の限られた組み込みシステムで効率よくアクセスするためには、ファイル・アクセスの仕組みをある程度意識した使用が求められます。FatFsモジュールでは、ディスク上のファイル・データは f_read()内で次のような手順で読み出されます。

+
図1. セクタ・ミスアライメント・リード
+fig.1 +
+
+
図2. セクタ・ミスアライメント・リード
+fig.2 +
+
+
図3. セクタ・アライメント・リード
+fig.3 +
+
+

ここでファイルI/Oバッファとは、データ・セクタの一部を読み書きするための1セクタ長のバッファで、FatFsではそのファイル・オブジェクト内の、Tiny-FatFsではワークエリア内のバッファのことを指しています。

+

Tiny-FatFsでは、全てのデータ転送とFATやディレクトリへのアクセスをただ一つのセクタ・バッファで行っているため、データ転送によりFATのキャッシュが失われ、クラスタ境界を通過するたびにFATセクタを読み直す必要があります。FatFsの場合は、データ用バッファはFAT用とは別なので、FATセクタを読む頻度はTiny-FatFsの 1/341, 1/256 または 1/128で済みます(クラスタが連続している場合)。つまり、Tiny-FatFsは性能低下の代償を払ってRAM使用量を削減しているわけです。

+

転送領域のうちセクタ全体を含む部分は(図2)のようにファイルI/Oバッファを介さず、ディスクとの間で直接転送されます。完全なセクタ・アライメント・アクセスの場合(図3)は、ファイルI/Oバッファは全く使用されません。直接転送では、可能ならdisk_read()に複数セクタを指定して最大限のマルチ・セクタ転送が行われます。ただし、クラスタ境界をまたぐときはクラスタが隣接していたとしても転送は分割されます。

+

このように、極力セクタ・アライメント・アクセスになるように配慮すれば、無駄なメモリ・コピーが減って性能が向上します。さらに、Tiny-FatFsではFATのキャッシュが生きるようになり、省メモリ特性とFatFsの性能とが同時に得られます。

+
+ +
+

クリチカル・セクション

+

ディスク上のFAT構造を操作している途中で、停電、不正なメディアの取り外し、回復不能なデータ・エラー等の障害が発生すると、処理が中途半端な状態で中断され、その結果としてFAT構造が破壊される可能性があります。次にFatFsモジュールにおけるクリチカル・セクションと、その間の障害により起きうるエラーの状態を示します。

+
+図4. 長いクリチカル・セクション
+fig.4 +
+
+図5. 短くしたクリチカル・セクション
+fig.5 +
+
+

赤で示したセクションを実行中に障害が発生した場合、クロス・リンクが発生して操作対象のファイル・ディレクトリが失われる可能性があります。黄色で示したセクションを実行中に障害が発生した場合、つぎのうちいずれかまたは複数の結果が生じる可能性があります。

+ +

いずれも書き込み中や操作対象でないファイルには影響はありません。これらのクリチカル・セクションは、ファイルを書き込みモードで開いている時間を最小限にするか、f_sync()を適宜使用することで図5のようにリスクを最小化することができます。

+
+ + +
+

現リビジョンの問題点とその改善案

+ +
+

そして、これらの機能拡張を行うとそれだけ多くのリソースが要求されるようになり、このプロジェクトの対象とする8/16ビット・マイコンのシステムに載せられなくなってしまうという問題もあります(これが一番の問題かも知れません)。

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/chmod.html b/third_party/fatfs/doc/ja/chmod.html new file mode 100644 index 0000000..8c76674 --- /dev/null +++ b/third_party/fatfs/doc/ja/chmod.html @@ -0,0 +1,89 @@ + + + + + + + +FatFs - f_chmod + + + + +
+

f_chmod

+

ファイルまたはディレクトリの属性を変更します。

+
+FRESULT f_chmod (
+  const char* FileName, /* ファイルまたはディレクトリ名へのポインタ */
+  BYTE Attribute,       /* 設定値 */
+  BYTE AttributeMask    /* 変更マスク */
+);
+
+
+ +
+

引数

+
+
FileName
+
属性変更対象のファイルまたはディレクトリのフルパス名の入った'\0'で終わる文字列を指定します。
+
Attribute
+
設定する属性。指定可能な属性は次の通りで、これらの組み合わせで指定します。指定されなかった属性は解除されます。
+ + + + + + +
値意味
AM_RDOリード・オンリー
AM_ARCアーカイブ
AM_SYSシステム
AM_HIDヒドゥン
+
+
AttributeMask
+
変更する属性のマスク。指定した属性が設定または解除され、指定されなかった属性は状態が保持されます。Attributeと同じ値を使います。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_FILE
+
ファイルが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_NAME
+
ドライブ番号が不正。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
その論理ドライブにワーク・エリアが与えられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

ファイルまたはディレクトリの属性を変更します。リード・オンリー構成および_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+
+ + +
+

使用例

+
+    // Set read-only flag , clear archive flag and others are left unchanged.
+    f_chmod("file.txt", AM_RDO, AM_RDO | AM_ARC);
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/close.html b/third_party/fatfs/doc/ja/close.html new file mode 100644 index 0000000..2da739a --- /dev/null +++ b/third_party/fatfs/doc/ja/close.html @@ -0,0 +1,60 @@ + + + + + + + +FatFs - f_close + + + + +
+

f_close

+

ファイルを閉じます。

+
+FRESULT f_close (
+  FIL* FileObject     /* ファイル・オブジェクトへのポインタ */
+);
+
+
+ +
+

引数

+
+
FileObject
+
閉じようとするファイルのファイル・オブジェクト構造体へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_INVALID_OBJECT
+
無効なファイル・オブジェクト。
+
+
+ + +
+

解説

+

ファイルを閉じます。書き込みの行われたファイルの場合、キャッシュされた状態(R/Wバッファ上のデータ、変更されたFATやディレクトリ項目)はディスクに書き戻されます。関数が正常終了すると、そのファイル・オブジェクトは無効になり、そのメモリも解放できます。読み込み専用モードで開かれたファイル・オブジェクトは、この関数によるクローズ処理を経ずに破棄することもできます。

+
+ + +
+

参照

+f_open, f_read, f_write, f_sync, FIL, FATFS +
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/dinit.html b/third_party/fatfs/doc/ja/dinit.html new file mode 100644 index 0000000..7a32450 --- /dev/null +++ b/third_party/fatfs/doc/ja/dinit.html @@ -0,0 +1,44 @@ + + + + + + + +FatFs - disk_initialize + + + + +
+

disk_initialize

+

ディスク・ドライブを初期化します。

+
+DSTATUS disk_initialize (
+  BYTE Drive      /* 物理ドライブ番号 */
+);
+
+
+ +
+

引数

+
+
Drive
+
初期化する物理ドライブ番号(0-9)を指定します。
+
+
+ + +
+

戻り値

+

この関数は戻り値としてディスク・ステータスを返します。ディスク・ステータスの詳細に関してはdisk_status()を参照してください。

+
+ +
+

解説

+

ディスク・ドライブを初期化します。関数が成功すると、戻り値のSTA_NOINITフラグがクリアされます。

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/dioctl.html b/third_party/fatfs/doc/ja/dioctl.html new file mode 100644 index 0000000..519f7c6 --- /dev/null +++ b/third_party/fatfs/doc/ja/dioctl.html @@ -0,0 +1,65 @@ + + + + + + + +FatFs - disk_ioctl + + + + +
+

disk_ioctl

+

セクタの読み書き以外のディスク・ドライブ自体に対する様々な制御をします。

+
+DRESULT disk_ioctl (
+  BYTE Drive,      /* 物理ドライブ番号 */
+  BYTE Command,    /* 制御コマンド */
+  void* Buffer     /* データ受け渡しバッファ */
+);
+
+
+ +
+

引数

+
+
Drive
+
物理ドライブ番号(0-9)を指定します。
+
Command
+
制御コマンド・コードを指定します。
+
Buffer
+
制御コマンドに依存したパラメータを授受するバッファを指すポインタを指定します。バッファを使用しないコマンドの場合は、NULLを指定します。
+
+
+ +
+

戻り値

+
+
RES_OK (0)
+
正常終了。
+
RES_ERROR
+
何らかのエラーが発生した。
+
RES_PARERR
+
コマンドが不正。
+
RES_NOTRDY
+
ドライブが動作可能状態ではない、または初期化されていない。
+
+
+ +
+

解説

+

物理ドライブの種類によりサポートされるコマンドは異なりますが、FatFsモジュールでは、ドライブの種類に依存した制御は行いません。次のドライブ共通コマンドを使用します。

+

リード・オンリー構成ではこの関数は必要とされません。

+ + + + +
コマンド解説
GET_SECTOR_COUNTBufferの指すDWORD変数にドライブ上の総セクタ数を返します。
CTRL_SYNCドライブがデータの書き込みを完了するのを待ちます。ライト・バック・キャッシュを持っている場合は、書き込まれていないデータを即時書き戻します。
+
+ + +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/dread.html b/third_party/fatfs/doc/ja/dread.html new file mode 100644 index 0000000..f665b04 --- /dev/null +++ b/third_party/fatfs/doc/ja/dread.html @@ -0,0 +1,58 @@ + + + + + + + +FatFs - disk_read + + + + +
+

disk_read

+

ディスクからセクタを読み出します。

+
+DRESULT disk_read (
+  BYTE Drive,          /* 物理ドライブ番号 */
+  BYTE* Buffer,        /* 読み出しバッファへのポインタ */
+  DWORD SectorNumber,  /* 読み出し開始セクタ番号 */
+  BYTE SectorCount     /* 読み出しセクタ数 */
+);
+
+
+ +
+

引数

+
+
Drive
+
物理ドライブ番号(0-9)を指定します。
+
Buffer
+
ディスクから読み出したデータを格納するバッファ。SectorCount * 512バイトのサイズが必要です。
+
SectorNumber
+
読み出しを開始するセクタ番号。LBAで指定します。
+
SectorCount
+
読み出すセクタ数。 1〜255で設定します
+
+
+ + +
+

戻り値

+
+
RES_OK (0)
+
正常終了。
+
RES_ERROR
+
読み込み中にエラーが発生した。
+
RES_PARERR
+
パラメータが不正。
+
RES_NOTRDY
+
ドライブが動作可能状態ではない(初期化されていない)。
+
+
+ + +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/dstat.html b/third_party/fatfs/doc/ja/dstat.html new file mode 100644 index 0000000..9e04ccb --- /dev/null +++ b/third_party/fatfs/doc/ja/dstat.html @@ -0,0 +1,47 @@ + + + + + + + +FatFs - disk_status + + + + +
+

disk_status

+

ディスク・ドライブの状態を取得します。

+
+DSTATUS disk_status (
+  BYTE Drive           /* 物理ドライブ番号 */
+);
+
+
+ +
+

引数

+
+
Drive
+
ステータスを取得する物理ドライブ番号を指定します。
+
+
+ + +
+

戻り値

+

物理ドライブの状態が次のフラグの組み合わせの値で返されます。

+
+
STA_NOINIT
+
ドライブが初期化されていないことを示すフラグ。システム・リセットやメディアの取り外し等でセットされ、disk_initialize() の正常終了でクリア、失敗でセットされます。
+
STA_NODISK
+
メディアがセットされていないことを示すフラグ。メディアが取り外されている間はセットされ、メディアがセットされている間はクリアされます。固定ディスクでは常にクリアされています。
+
STA_PROTECTED
+
メディアがライト・プロテクトされていることを示すフラグ。ライト・プロテクト機能をサポートしないメディアでは常にクリアされています。
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/dwrite.html b/third_party/fatfs/doc/ja/dwrite.html new file mode 100644 index 0000000..15eb2b2 --- /dev/null +++ b/third_party/fatfs/doc/ja/dwrite.html @@ -0,0 +1,66 @@ + + + + + + + +FatFs - disk_write + + + + +
+

disk_write

+

ディスクにデータを書き込みます。

+
+DRESULT disk_write (
+  BYTE Drive,          /* 物理ドライブ番号 */
+  const BYTE* Buffer,  /* 書き込むデータへのポインタ */
+  DWORD SectorNumber,  /* 書き込み開始セクタ番号 */
+  BYTE SectorCount     /* 書き込みセクタ数 */
+);
+
+
+ +
+

引数

+
+
Drive
+
物理ドライブ番号(0-9)を指定します。
+
Buffer
+
ディスクに書き込むデータを指定します。
+
SectorNumber
+
書き込みを開始するセクタ番号。LBAで指定します。
+
SectorCount
+
書き込むセクタ数。 1〜255で設定します。
+
+
+ + +
+

戻り値

+
+
RES_OK (0)
+
正常終了。
+
RES_ERROR
+
書き込み中にエラーが発生した。
+
RES_WRPRT
+
ディスクが書き込み禁止状態。
+
RES_PARERR
+
パラメータが不正。
+
RES_NOTRDY
+
ドライブが動作可能状態ではない(初期化されていない)。
+
+
+ + +
+

解説

+

リード・オンリー構成ではこの関数は必要とされません。

+
+ + +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/fattime.html b/third_party/fatfs/doc/ja/fattime.html new file mode 100644 index 0000000..5473557 --- /dev/null +++ b/third_party/fatfs/doc/ja/fattime.html @@ -0,0 +1,50 @@ + + + + + + + +FatFs - get_fattime + + + + +
+

get_fattime

+

現在時刻を取得します。

+
+DWORD get_fattime (void);
+
+
+ + +
+

戻り値

+

現在のローカル・タイムがDWORD値にパックされて返されます。ビット・フィールドは次に示すようになります。

+
+
bit31:25
+
1980年を起点とした年が 0..127 で入ります。
+
bit24:21
+
月が 1..12 の値で入ります。
+
bit20:16
+
日が 1..31 の値で入ります。
+
bit15:11
+
時が 0..23 の値で入ります。
+
bit10:5
+
分が 0..59 の値で入ります。
+
bit4:0
+
秒/2が 0..29 の値で入ります。
+
+
+ + +
+

解説

+

RTCをサポートしないシステムでも、何らかの日付として有効な値を返さなければなりません。リード・オンリー構成ではこの関数は必要とされません。

+
+ + +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/filename.html b/third_party/fatfs/doc/ja/filename.html new file mode 100644 index 0000000..6689b14 --- /dev/null +++ b/third_party/fatfs/doc/ja/filename.html @@ -0,0 +1,56 @@ + + + + + + + +FatFs - ファイル・ディレクトリの指定方法 + + + +
+

ファイル・ディレクトリの指定方法

+

FatFsモジュールでのファイル、ディレクトリ、ドライブの指定方法はMS-DOSとほぼ同じです。ただし、MS-DOSのようなカレント・ディレクトリの概念は無いので、常にルート・ディレクトリから辿る絶対パスでの指定となります。パス名の指定方法と例は次の通りです。

+
+
+ "[論理ドライブ番号:][/]ディレクトリ名/ファイル名"
+
+ "file1.txt"           ファイル(ドライブ0)
+ "/file1.txt"          ↑と同じ
+ "dir1/dir2/file1.txt" ファイル(ドライブ0)
+ "2:dir3/file2.txt"    ファイル(ドライブ2)
+ "2:/dir5"             ディレクトリ(ドライブ2)
+ ""                    ルート・ディレクトリ(ドライブ0)
+ "/"                   ↑と同じ
+ "2:"                  ルート・ディレクトリ(ドライブ2)
+
+
+

FatFsモジュールは8.3形式ファイル名にのみ対応しています。長いファイル名には対応していないので、ファイル名やディレクトリ名は8.3形式の範囲内で指定します。ディレクトリ・セパレータには'/'を使用します。パス名先頭の'/'は、あってもなくても同じです。論理ドライブ番号は、'0'〜'9'の一文字の数字とコロンで指定します。省略した場合は"0:"を指定したことになります。Tiny-FatFsでは一つのファイル・システム・オブジェクトしか持てず、常に論理ドライブ0として動作します。また、パス名中に論理ドライブ番号を使用できません。

+
+


+
+

論理ドライブと物理ドライブの対応

+

標準構成では、それぞれの論理ドライブは同じ番号の物理ドライブに1:1で結びつけられていて、先頭の区画がマウントされます。構成オプションで_MULTI_PARTITIONを指定すると、論理ドライブに対して個別に物理ドライブ番号・区画を指定できるようになります。この構成では、論理ドライブと区画の対応を解決するためのテーブルを次に示すように定義する必要があります。

+
+例:論理ドライブ0〜2を物理ドライブ0(固定ディスク)の3つの基本区画に割り当て、
+   論理ドライブ3を物理ドライブ1(リムーバブル・ディスク)に割り当てる場合。
+
+const PARTITION Drives[] = {
+    {0, 0},     /* Logical drive 0 ==> Physical drive 0, 1st partition */
+    {0, 1},     /* Logical drive 1 ==> Physical drive 0, 2nd partition */
+    {0, 2},     /* Logical drive 2 ==> Physical drive 0, 3rd partition */
+    {1, 0}      /* Logical drive 3 ==> Physical drive 1 */
+};
+
+

複数区画指定を使用する場合、次の点に注意しなければなりません。 +

+ + + diff --git a/third_party/fatfs/doc/ja/getfree.html b/third_party/fatfs/doc/ja/getfree.html new file mode 100644 index 0000000..eb328e7 --- /dev/null +++ b/third_party/fatfs/doc/ja/getfree.html @@ -0,0 +1,91 @@ + + + + + + + +FatFs - f_getfree + + + + +
+

f_getfree

+

論理ドライブ上の未使用クラスタ数を得ます。

+
+FRESULT f_getfree (
+  const char* Path,        /* 対象ドライブのルート・ディレクトリ */
+  DWORD* Clusters,         /* 空きクラスタ数を格納する変数へのポインタ */
+  FATFS** FileSystemObject /* ファイル・システム・オブジェクトを指すポインタへのポインタ */
+);
+
+
+ +
+

引数

+
+
Path
+
対象の論理ドライブのルートディレクトリのパス名が入った'\0'で終わる文字列へのポインタを指定します。
+
Clusters
+
空きクラスタ数を格納するDWORD変数へのポインタを指定します。
+
FileSystemObject
+
対象ドライブのファイル・システム・オブジェクトを指すポインタが返されます。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。*Clustersに空きクラスタ数が返されます。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスクドライブが動作不能状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
その論理ドライブにワーク・エリアが与えられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

論理ドライブ上の空きクラスタ数を取得します。返されたファイル・システム・オブジェクトのsects_clustメンバがクラスタあたりのセクタ数を示しているので、これを元に実際の空きサイズが計算できます。FAT32ボリュームにおいて、_USE_FSINFOが指定されている場合、不正確な値を返す場合があります。指定されていない場合、処理に時間がかかります。

+

リードオンリー構成および_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+
+ + +
+

使用例

+
+    FATFS *fs;
+    DWORD clust;
+
+
+    // Get free clusters
+    res = f_getfree("", &clust, &fs);
+    if (res) die(res);
+
+    // Get free space
+    printf("%lu KB total disk space.\n"
+           "%lu KB available on the disk.\n",
+           (DWORD)(fs->max_clust - 2) * fs->sects_clust / 2,
+           clust * fs->sects_clust / 2);
+
+
+ + +
+

参照

+FATFS +
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/lseek.html b/third_party/fatfs/doc/ja/lseek.html new file mode 100644 index 0000000..855894f --- /dev/null +++ b/third_party/fatfs/doc/ja/lseek.html @@ -0,0 +1,87 @@ + + + + + + + +FatFs - f_lseek + + + + +
+

f_lseek

+

ファイルのR/Wポインタを移動します。

+
+FRESULT f_lseek (
+  FIL* FileObject,   /* ファイル・オブジェクト構造体へのポインタ */
+  DWORD Offset       /* 移動先オフセット */
+);
+
+
+ +
+

引数

+
+
FileObject
+
対象となるファイル・オブジェクト構造体へのポインタを指定します。
+
Offset
+
移動先のオフセット(R/Wポインタ)値。ファイル先頭からのオフセットをバイト単位で指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_INVALID_OBJECT
+
無効なファイル・オブジェクト。
+
+
+ + +
+

解説

+

ファイルR/Wポインタ(ファイル・オブジェクト内のfptrメンバで、次に読み出し・書き込みされるバイトのオフセットを示す)を移動します。オフセットの原点はファイル先頭からです。書き込みモードでファイル・サイズより大きな値を指定すると、そこまでファイルが拡張され、拡張された部分のデータは未定義となります。大容量データを遅延無く高速に書き込みたいときは、予めこの関数で必要なサイズまでファイルを拡張しておくと良いです。f_lseek関数が正常終了したあとは、ファイルR/Wポインタが正しく移動したかfptrをチェックするべきです。ファイルR/Wポインタが指定より小さいときは、次の原因が考えられます。

+ +

_FS_MINIMIZE >= 3ではこの関数はサポートされません。

+
+ + +
+

使用例

+
+    // ファイル・オフセット5000へ移動
+    res = f_lseek(&file, 5000);
+
+    // 3000バイト進める
+    res = f_lseek(&file, file.fptr + 3000);
+
+    // 2000バイト戻す(オーバーフローに注意)
+    res = f_lseek(&file, file.fptr - 2000);
+
+    // ファイル追記の準備
+    res = f_lseek(&file, file.fsize);
+
+
+ + +
+

参照

+

f_open, FIL

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/mkdir.html b/third_party/fatfs/doc/ja/mkdir.html new file mode 100644 index 0000000..da2dbc4 --- /dev/null +++ b/third_party/fatfs/doc/ja/mkdir.html @@ -0,0 +1,83 @@ + + + + + + + +FatFs - f_mkdir + + + + +
+

f_mkdir

+

ディレクトリを作成します。

+
+FRESULT f_mkdir (
+  const char* DirName /* 作成するディレクトリ名へのポインタ */
+);
+
+
+ +
+

引数

+
+
DirName
+
作成するディレクトリのフルパス名が入った'\0'で終わる文字列へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_DENIED
+
ディスクやディレクトリ・エントリが満杯の場合など。
+
FR_EXIST
+
同名のディレクトリやファイルが存在する。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
その論理ドライブにワーク・エリアが与えられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

空のディレクトリを作成します。リード・オンリー構成および_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+

+

+
+ + +
+

使用例

+
+    res = f_mkdir("sub1");
+    if (res) die(res);
+    res = f_mkdir("sub1/sub2");
+    if (res) die(res);
+    res = f_mkdir("sub1/sub2/sub3");
+    if (res) die(res);
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/mkfs.html b/third_party/fatfs/doc/ja/mkfs.html new file mode 100644 index 0000000..c6271f0 --- /dev/null +++ b/third_party/fatfs/doc/ja/mkfs.html @@ -0,0 +1,73 @@ + + + + + + + +FatFs - f_mkfs + + + + +
+

f_mkfs

+

ドライブ上にFATファイル・システムを作成(フォーマット)します。

+
+FRESULT f_mkfs (
+  BYTE  Drive,              /* Logical drive number */
+  BYTE  PartitioningRule,   /* Partitioning rule */
+  BYTE  AllocSize           /* Allocation unit size */
+);
+
+
+ +
+

引数

+
+
Drive
+
フォーマットする論理ドライブ(0-9)。
+
PartitioningRule
+
0を指定すると、区画テーブルを作成したあとその区画にファイル・システムを作成します(FDISKフォーマット)。1を指定すると、先頭セクタから直接ファイル・システムを構築します(super floppy (SFD) フォーマット)。
+
AllocSize
+
クラスタ・サイズをセクタ単位で指定します。2の累乗でかつクラスタ・サイズが32Kバイトまでの範囲でなければなりません。
+
+
+ +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_INVALID_DRIVE
+
ドライブ番号が無効。
+
FR_NOT_READY
+
メディアがセットされていないなど、物理ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態。
+
FR_NOT_ENABLED
+
その論理ドライブにワーク・エリアが割り当てられていない。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_MKFS_ABORTED
+
次の理由で開始前に処理が中断された。 +
    +
  • ディスク・サイズが小さすぎる。
  • +
  • 何らかの引数が不正。
  • +
  • そのクラスタ・サイズが使えない。クラスタ数が0xFF7と0xFFF7近辺になるとき発生する可能性がある。
  • +
+
+
+
+ +
+

説明

+

f_mkfs関数はFATファイル・システムをドライブ上に作成します。リムーバブル・メディアのパーテーショニング・ルールとしては、FDISK形式とSFD形式がありますが、FDISK形式が一般的です。この関数は複数区画には対応していないので、その物理ドライブの既存の区画は全て削除され、全体が一つの区画になります。

+

FATタイプ(FAT12/FAT16/FAT32)は、ディスク上のクラスタ数によってのみ決定される[FAT仕様書より]決まりになっていて、それ以外の要因はありません。したがって、どのFATタイプになるかは、ディスク・サイズとクラスタ・サイズに依存します。クラスタ・サイズは大きいほど性能が上がるので、特に小容量のドライブでなければ64セクタを選択しておけばよいです。

+

この関数は、FatFsで構成オプション_USE_MKFSを選択したときにサポートされます。また、Tiny-FatFsではサポートされません。

+

+ + +

Return

+ + diff --git a/third_party/fatfs/doc/ja/mount.html b/third_party/fatfs/doc/ja/mount.html new file mode 100644 index 0000000..e2bbfc3 --- /dev/null +++ b/third_party/fatfs/doc/ja/mount.html @@ -0,0 +1,59 @@ + + + + + + + +FatFs - f_mount + + + + +
+

f_mount

+

論理ドライブのワーク・エリアを登録・抹消します。

+
+FRESULT f_mount (
+  BYTE  Drive,               /* 論理ドライブ番号 */
+  FATFS*  FileSystemObject   /* ワーク・エリアへのポインタ */
+);
+
+
+ +
+

引数

+
+
Drive
+
論理ドライブ番号(0-9)。Tiny-FatFsでは常に0。
+
FileSystemObject
+
登録するワーク・エリア(ファイル・システム・オブジェクト)へのポインタ。
+
+
+ +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_INVALID_DRIVE
+
ドライブ番号が無効。
+
+
+ + +
+

解説

+

FatFsモジュールではそれぞれの論理ドライブにファイル・システム・オブジェクトというワーク・エリアが必要です。この関数は論理ドライブにそのワーク・エリアを登録したり抹消したりします。何らかのファイル関数を使用する前にこの関数でその論理ドライブのワーク・エリアを与えておかなければなりません。FileSystemObjectにヌル・ポインタを指定するとその論理ドライブのワーク・エリアの登録は抹消され、登録されていたワーク・エリアは破棄できます。

+

この関数内では物理ドライブへのアクセスは発生せず、ワーク・エリアを初期化して内部配列にそのアドレスを登録するだけです。実際のマウント動作は、他のファイル関数(パス名を指定するもの)の中で必要に応じて行われます。

+
+ + +
+

参照

+

FATFS

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/mountdrv.html b/third_party/fatfs/doc/ja/mountdrv.html new file mode 100644 index 0000000..9411bea --- /dev/null +++ b/third_party/fatfs/doc/ja/mountdrv.html @@ -0,0 +1,58 @@ + + + + + + + +FatFs - f_mountdrv + + + + +
+

f_mountdrv

+

ファイルシステムを明示的に初期化します。

+
+FRESULT f_mountdrv (void);
+
+
+ +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスクドライブが動作不能状態。
+
FR_RW_ERROR
+
ディスクアクセスでエラーが発生した。
+
FR_NOT_ENABLED
+
FatFsモジュールが停止状態。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATファイルシステムが見つからない。
+
+
+ + +
+

解説

+

ファイルシステムを強制的に初期化(マウント)します。FatFsモジュールではマウント動作はファイル関数呼び出し時に必要に応じて内部で行われるので、通常はこの関数を使用すべきではありません。自動マウント動作中に回復不能エラー(たとえばFR_INCORRECT_DISK_CHANGE)が発生した場合、全てのファイル関数が使えなくなるので、そのときはこの関数で再マウントして回復することができます。

+

f_mountdrv関数内では次の処理が行われます。

+
+ +
+ + +
+

参照

+

FATFS

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/open.html b/third_party/fatfs/doc/ja/open.html new file mode 100644 index 0000000..b6678c8 --- /dev/null +++ b/third_party/fatfs/doc/ja/open.html @@ -0,0 +1,135 @@ + + + + + + + +FatFs - f_open + + + + +
+

f_open

+

ファイルをオープンまたは作成します。

+
+FRESULT f_open (
+  FIL* FileObject,      /* 空のファイル・オブジェクト構造体へのポインタ */
+  const char* FileName, /* ファイルのフルパス名へのポインタ */
+  BYTE ModeFlags        /* モードフラグ */
+);
+
+
+ +
+

引数

+
+
FileObject
+
新しく作成するファイル・オブジェクト構造体へのポインタを指定します。以降、そのファイルを閉じるまでこのファイル・オブジェクトを使用してファイル操作をします。
+
FileName
+
開く(または作成する)ファイルの ファイル名が入った'\0'で終わる文字列へのポインタを指定します。
+
ModeFlags
+
ファイルのアクセス方法やオープン方法を決めるフラグです。このパラメータには次の組み合わせを指定します。
+ + + + + + + + +
値意味
FA_READ読み出しモードで開きます。読み書きする場合はFA_WRITEと共に指定します。
FA_WRITE書き込みモードで開きます。読み書きする場合はFA_READと共に指定します。
FA_OPEN_EXISTING既存のファイルを開きます。ファイルが無いときはエラーになります。
FA_OPEN_ALWAYS既存のファイルを開きます。ファイルが無いときはファイルを作成します。
FA_CREATE_NEWファイルを作成します。同名のファイルがある場合は、エラーになります。
FA_CREATE_ALWAYSファイルを作成します。同名のファイルがある場合は、サイズを0にしてから開きます。
+
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。以降、FileObject構造体を使ってこのファイルを操作できます。
+
FR_NO_FILE
+
ファイルが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
ファイル名が不正。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_EXIST
+
同名のファイルが既にある。
+
FR_DENIED
+
アクセスが拒否された。リード・オンリー・ファイルの書き込みモード・オープン、同名のディレクトリまたはリード・オンリー・ファイルがある状態でのファイル作成、ディスクまたはディレクトリ・テーブルが満杯でファイルを作成できないなど。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態で書き込み系オープンをした。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
その論理ドライブにワーク・エリアが割り当てられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

作成されたファイル・オブジェクトは、以降そのファイルに対するアクセスに使用します。ファイルを閉じるときは、f_close()を使用します。

+

ファイル操作関数を使用する前にまず、f_mount()を使ってそれぞれの論理ドライブにワーク・エリア(ファイル・システム・オブジェクト)を与えなければなりません。この初期化の後、その論理ドライブに対して全てのファイル関数が使えるようになります。

+

リードオンリー構成では、FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYSの各フラグはサポートされません。

+
+ + +
+

使用例(ファイル・コピー)

+
+void main ()
+{
+    FATFS fs;            // 論理ドライブのワーク・エリア(ファイル・システム・オブジェクト)
+    FIL fsrc, fdst;      // ファイル・オブジェクト
+    BYTE buffer[4096];   // file copy buffer
+    FRESULT res;         // FatFs function common result code
+    WORD br, bw;         // File R/W count
+
+    // ドライブ0にワーク・エリアを与える
+    f_mount(0, &fs);
+
+    // ソース・ファイルを開く
+    res = f_open(&fsrc, "srcfile.dat", FA_OPEN_EXISTING | FA_READ);
+    if (res) die(res);
+
+    // デスティネーション・ファイルを作成する
+    res = f_open(&fdst, "dstfile.dat", FA_CREATE_ALWAYS | FA_WRITE);
+    if (res) die(res);
+
+    // ソースからデスティネーションにコピーする
+    for (;;) {
+        res = f_read(&fsrc, buffer, sizeof(buffer), &br);
+        if (res || br == 0) break;   // error or eof
+        res = f_write(&fdst, buffer, br, &bw);
+        if (res || bw < br) break;   // error or disk full
+    }
+
+    // 全てのファイルを閉じる
+    f_close(&fsrc);
+    f_close(&fdst);
+
+    // ワーク・エリアを開放する
+    f_mount(0, NULL);
+}
+
+
+ + +
+

参照

+

f_read, f_write, f_close, FIL, FATFS

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/opendir.html b/third_party/fatfs/doc/ja/opendir.html new file mode 100644 index 0000000..54e50e1 --- /dev/null +++ b/third_party/fatfs/doc/ja/opendir.html @@ -0,0 +1,73 @@ + + + + + + + +FatFs - f_opendir + + + + +
+

f_opendir

+

ディレクトリをオープンします。

+
+FRESULT f_opendir (
+  DIR* DirObject,      /* ディレクトリ・ブジェクト構造体へのポインタ */
+  const char* DirName  /* ディレクトリ名へのポインタ */
+);
+
+
+ +
+

引数

+
+
DirObject
+
初期化するディレクトリ・オブジェクト構造体へのポインタを指定します。
+
DirName
+
オープンするディレクトリのフルパス名が入った'\0'で終わる文字列へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_FILE
+
ディレクトリが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
論理ドライブにワーク・エリアが与えられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

ディレクトリをオープンします。正常終了したら、DirObject構造体を使ってこのディレクトリの項目を順次読み出せます。DirObject構造体は使用後は任意の時点で破棄できます。_FS_MINIMIZE >= 2ではこの関数はサポートされません。

+
+ + +
+

参照

+

f_readdir, DIR

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/read.html b/third_party/fatfs/doc/ja/read.html new file mode 100644 index 0000000..3151f49 --- /dev/null +++ b/third_party/fatfs/doc/ja/read.html @@ -0,0 +1,71 @@ + + + + + + + +FatFs - f_read + + + + +
+

f_read

+

ファイルからデータを読み出します。

+
+FRESULT f_read (
+  FIL* FileObject,    // ファイル・オブジェクト構造体
+  void* Buffer,       // 読み出したデータを格納するバッファ
+  WORD ByteToRead,    // 読み出すバイト数
+  WORD* ByteRead      // 読み出されたバイト数
+);
+
+
+ +
+

引数

+
+
FileObject
+
ファイル・オブジェクト構造体へのポインタを指定します。
+
Buffer
+
読み出したデータを格納するバッファを指すポインタを指定します。
+
ByteToRead
+
読み出すバイト数(0〜65535)を指定します。
+
ByteRead
+
実際に読み出されたバイト数を格納する変数を指すポインタを指定します。
+ +
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_DENIED
+
非読み込みモードで開いたファイルから読み込もうとした。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_INVALID_OBJECT
+
無効なファイル・オブジェクト。
+
+
+ + +
+

解説

+

読み込み開始位置は、現在のファイルR/Wポインタからになります。ファイルR/Wポインタは読み込まれたバイト数だけ進みます。読み込み中にファイルの終端に達すると、*ByteReadはByteToReadよりも小さくなります。

+
+ + +
+

参照

+

f_open, f_write, f_close, FIL

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/readdir.html b/third_party/fatfs/doc/ja/readdir.html new file mode 100644 index 0000000..f6ad18f --- /dev/null +++ b/third_party/fatfs/doc/ja/readdir.html @@ -0,0 +1,89 @@ + + + + + + + +FatFs - f_readdir + + + + +
+

f_readdir

+

ディレクトリ項目を読み出します

+
+FRESULT f_readdir (
+  DIR* DirObject,    /* ディレクトリ・ブジェクト構造体へのポインタ */
+  FILINFO* FileInfo  /* ファイル情報構造体へのポインタ */
+);
+
+
+ +
+

引数

+
+
DirObject
+
ディレクトリ・オブジェクト構造体へのポインタを指定します。
+
FileInfo
+
読み出したディレクトリ項目を格納するファイル情報構造体へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_INVALID_OBJECT
+
無効なディレクトリ・オブジェクト。
+
+
+ + +
+

解説

+

ディレクトリ項目を順次読み出します。この関数を繰り返し実行することによりディレクトリの全ての項目を読み出すことができます。全ての項目を読み出し、読み出す項目がもう無いときは、f_name[]メンバにヌル文字列が返されます。得られるファイル情報の詳細については FILINFO構造体を参照してください。_FS_MINIMIZE >= 2ではこの関数はサポートされません。

+
+ + +
+

使用例

+
+void scan_files (char* path)
+{
+    FILINFO finfo;
+    DIR dirs;
+    int i;
+
+    if (f_opendir(&dirs, path) == FR_OK) {
+        i = strlen(path);
+        while ((f_readdir(&dirs, &finfo) == FR_OK) && finfo.fname[0]) {
+            if (finfo._attrib & AM_DIR) {
+                sprintf(path+i, "/%s", &finfo.fname[0]);
+                scan_files(path);
+                *(path+i) = '\0';
+            } else {
+                printf("%s/%s\n", path, &finfo.fname[0]);
+            }
+        }
+    }
+}
+
+
+ + +
+

参照

+

f_opendir, f_stat, FILINFO, DIR

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/rename.html b/third_party/fatfs/doc/ja/rename.html new file mode 100644 index 0000000..1c5ece8 --- /dev/null +++ b/third_party/fatfs/doc/ja/rename.html @@ -0,0 +1,86 @@ + + + + + + + +FatFs - f_rename + + + + +
+

f_rename

+

ファイルまたはディレクトリの名前の変更または移動。

+
+FRESULT f_rename (
+  const char* OldName, /* 古いファイルまたはディレクトリ名 */
+  const char* NewName  /* 新しいファイルまたはディレクトリ名 */
+);
+
+
+ +
+

引数

+
+
OldName
+
変更対象のファイルまたはディレクトリのフルパス名の入った'\0'で終わる文字列へのポインタを指定します。
+
NewName
+
新しいファイルまたはディレクトリのフルパス名の入った'\0'で終わる文字列へのポインタを指定します。既に存在するものと同じ名前は使えません。また、ドライブ番号は指定できず、OldNameで指定されたドライブ上のオブジェクトとして扱われます。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_FILE
+
ファイルが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_DENIED
+
新しい名前のオブジェクトが作れない。
+
FR_EXIST
+
NewNameと同じ名前のオブジェクトが既にある。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
論理ドライブにワークエリアが割り当てられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

ファイルまたはディレクトリの名前を変更します。別のディレクトリへの移動(同じドライブ内のみ)も可能です。リード・オンリー構成および_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+

※現リビジョンでは、ディレクトリを別のディレクトリに移動するとファイル・システムが壊れます。

+
+ + +
+

使用例

+
+    // 名前を変更する
+    f_rename("oldname.txt", "newname.txt");
+
+    // 名前の変更と同時に別のディレクトリへ移動する
+    f_rename("oldname.txt", "dir1/newname.txt");
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/sdir.html b/third_party/fatfs/doc/ja/sdir.html new file mode 100644 index 0000000..350d10c --- /dev/null +++ b/third_party/fatfs/doc/ja/sdir.html @@ -0,0 +1,42 @@ + + + + + + + +FatFs - DIR + + + + +
+

DIR

+

DIR構造体は、f_opendir(), f_readdir()のワーク・エリアとして使用されます。

+

FatFs

+
+typedef struct _DIR {
+    WORD    id;          /* Owner file system mount ID (inverted) */
+    WORD    index;       /* Current index */
+    FATFS*  fs;          /* Pointer to the owner file system object */
+    DWORD   sclust;      /* Start cluster */
+    DWORD   clust;       /* Current cluster */
+    DWORD   sect;        /* Current sector */
+} DIR;
+
+

Tiny-FatFs

+
+typedef struct _DIR {
+    WORD    id;          /* Owner file system mount ID (inverted) */
+    WORD    index;       /* Current index */
+    FATFS*  fs;          /* Pointer to the owner file system object */
+    CLUST   sclust;      /* Start cluster */
+    CLUST   clust;       /* Current cluster */
+    DWORD   sect;        /* Current sector */
+} DIR;
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/sfatfs.html b/third_party/fatfs/doc/ja/sfatfs.html new file mode 100644 index 0000000..999f612 --- /dev/null +++ b/third_party/fatfs/doc/ja/sfatfs.html @@ -0,0 +1,63 @@ + + + + + + + +FatFs - FATFS + + + + +
+

FATFS

+

FATFS構造体は、個々の論理ドライブのダイナミック・ワーク・エリアを保持し、f_mount()でFatFsモジュールに登録されます。標準状態では次のようなメンバになっています。アプリケーションから書き換え可能なメンバはありません。

+

FatFs

+
+typedef struct _FATFS {
+    WORD    id;             /* File system mount ID */
+    WORD    n_rootdir;      /* Number of root directory entries */
+    DWORD   winsect;        /* Current sector appearing in the win[] */
+    DWORD   sects_fat;      /* Sectors per fat */
+    DWORD   max_clust;      /* Maximum cluster# + 1 */
+    DWORD   fatbase;        /* FAT start sector */
+    DWORD   dirbase;        /* Root directory start sector (cluster# for FAT32) */
+    DWORD   database;       /* Data start sector */
+    DWORD   last_clust;     /* Last allocated cluster */
+    DWORD   free_clust;     /* Number of free clusters */
+    BYTE    fs_type;        /* FAT type (0:Not mounted) */
+    BYTE    sects_clust;    /* Sectors per cluster */
+    BYTE    n_fats;         /* Number of FAT copies */
+    BYTE    drive;          /* Physical drive number */
+    BYTE    winflag;        /* win[] dirty flag (1:must be written back) */
+    BYTE    pad1;
+    BYTE    win[512];       /* Disk access window for Directory/FAT */
+} FATFS;
+
+ +

Tiny-FatFs

+
+typedef struct _FATFS {
+    WORD    id;             /* File system mount ID */
+    WORD    n_rootdir;      /* Number of root directory entries */
+    DWORD   winsect;        /* Current sector appearing in the win[] */
+    DWORD   fatbase;        /* FAT start sector */
+    DWORD   dirbase;        /* Root directory start sector */
+    DWORD   database;       /* Data start sector */
+    CLUST   sects_fat;      /* Sectors per fat */
+    CLUST   max_clust;      /* Maximum cluster# + 1 */
+    CLUST   last_clust;     /* Last allocated cluster */
+    CLUST   free_clust;     /* Number of free clusters */
+    BYTE    fs_type;        /* FAT type (0:Not mounted) */
+    BYTE    sects_clust;    /* Sectors per cluster */
+    BYTE    n_fats;         /* Number of FAT copies */
+    BYTE    winflag;        /* win[] dirty flag (1:must be written back) */
+    BYTE    win[512];       /* Disk access window for Directory/FAT/File */
+} FATFS;
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/sfile.html b/third_party/fatfs/doc/ja/sfile.html new file mode 100644 index 0000000..4dea75e --- /dev/null +++ b/third_party/fatfs/doc/ja/sfile.html @@ -0,0 +1,54 @@ + + + + + + + +FatFs - FIL + + + + +
+

FIL

+

FIL構造体は、f_open()で作成され、そのファイルの状態を保持します。アプリケーションから書き換え可能なメンバはありません。

+

FatFs

+
+typedef struct _FIL {
+    WORD    id;             /* Owner file system mount ID (inverted) */
+    BYTE    flag;           /* File status flags */
+    BYTE    sect_clust;     /* Left sectors in cluster */
+    FATFS*  fs;             /* Pointer to the owner file system object */
+    DWORD   fptr;           /* File R/W pointer */
+    DWORD   fsize;          /* File size */
+    DWORD   org_clust;      /* File start cluster */
+    DWORD   curr_clust;     /* Current cluster */
+    DWORD   curr_sect;      /* Current sector */
+    DWORD   dir_sect;       /* Sector containing the directory entry */
+    BYTE*   dir_ptr;        /* Ponter to the directory entry in the window */
+    BYTE    buffer[512];    /* File R/W buffer */
+} FIL;
+
+ +

Tiny-FatFs

+
+typedef struct _FIL {
+    WORD    id;             /* Owner file system mount ID (inverted) */
+    BYTE    flag;           /* File status flags */
+    BYTE    sect_clust;     /* Left sectors in cluster */
+    FATFS*  fs;             /* Pointer to owner file system */
+    DWORD   fptr;           /* File R/W pointer */
+    DWORD   fsize;          /* File size */
+    CLUST   org_clust;      /* File start cluster */
+    CLUST   curr_clust;     /* Current cluster */
+    DWORD   curr_sect;      /* Current sector */
+    DWORD   dir_sect;       /* Sector containing the directory entry */
+    BYTE*   dir_ptr;        /* Ponter to the directory entry in the window */
+} FIL;
+
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/sfileinfo.html b/third_party/fatfs/doc/ja/sfileinfo.html new file mode 100644 index 0000000..dc4aa05 --- /dev/null +++ b/third_party/fatfs/doc/ja/sfileinfo.html @@ -0,0 +1,43 @@ + + + + + + + +FatFs - FILINFO + + + + +
+

FILINFO

+

FILINFO構造体は、f_stat(), f_readdir()で返されるファイル情報を保持します。

+
+typedef struct _FILINFO {
+    DWORD fsize;            /* Size [bytes] */
+    WORD fdate;             /* Date [15-9]:Year-1980, [8-5]:Month, [4-0]:Mday */
+    WORD ftime;             /* Time [15-11]:Hour, [10-5]:Minute, [4-0]:Sec/2 */
+    BYTE fattrib;           /* Attribute */
+    char fname[8+1+3+1];    /* Name */
+} FILINFO;
+
+
+ +

メンバ

+
+
fsize
+
ファイルのバイト単位のサイズが格納されます。ディレクトリの場合は常に0です。
+
fdate
+
ファイルの変更された日付、またはディレクトリの作成された日付が格納されます。
+
ftime
+
ファイルの変更された時刻、またはディレクトリの作成された時刻が格納されます。
+
fattrib
+
属性フラグが格納されます。フラグはAM_DIR, AM_RDO, AM_HID, AM_SYS, AM_ARCの組み合わせとなります。
+
fname[]
+
8.3形式の名前が'\0'で終わる文字列として格納されます。
+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/stat.html b/third_party/fatfs/doc/ja/stat.html new file mode 100644 index 0000000..5de8df9 --- /dev/null +++ b/third_party/fatfs/doc/ja/stat.html @@ -0,0 +1,73 @@ + + + + + + + +FatFs - f_stat + + + + +
+

f_stat

+

+
+FRESULT f_stat (
+  const char* FileName,  /* ファイルまたはディレクトリ名へのポインタ */
+  FILINFO* FileInfo      /* ファイル情報構造体へのポインタ *
+);
+
+
+ +
+

引数

+
+
FileName
+
情報を得るファイルまたはディレクトリ名の'\0'で終わる文字列を指すポインタを指定します。
+
FileInfo
+
読み出したファイル情報を格納するファイル情報構造体へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_FILE
+
ファイルまたはディレクトリが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_NAME
+
ドライブ番号が不正。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
論理ドライブにワークエリアが割り当てられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

ファイルまたはディレクトリに関する情報を得ます。得られるファイル情報の詳細については FILINFO構造体を参照してください。_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+
+ + +
+

参照

+

f_opendir, f_readdir, FILINFO, DIR

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/sync.html b/third_party/fatfs/doc/ja/sync.html new file mode 100644 index 0000000..cfc159c --- /dev/null +++ b/third_party/fatfs/doc/ja/sync.html @@ -0,0 +1,61 @@ + + + + + + + +FatFs - f_sync + + + + +
+

f_sync

+

書き込み中のファイルのキャッシュされた情報をフラッシュします。

+
+FRESULT f_sync (
+  FIL* FileObject     /* ファイル・オブジェクト構造体へのポインタ */
+);
+
+
+ +
+

引数

+
+
FileObject
+
syncするファイルのファイル・オブジェクト構造体へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_INVALID_OBJECT
+
ファイル・オブジェクトが無効。
+
+
+ + +
+

解説

+

この関数はf_close()と同じ処理を実行しますが、ファイルは引き続き開かれたままになり、読み書きを続行できます。ロギングなど、書き込みモードで長時間ファイルが開かれているアプリケーションにおいて、定期的または区切りの良いところでsyncすることにより、不意の電源断やメディアの取り外しにより失われるデータを最小にすることができます。

+

リード・オンリー構成ではこの関数はサポートされません。

+
+ + +
+

参照

+

f_close

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/unlink.html b/third_party/fatfs/doc/ja/unlink.html new file mode 100644 index 0000000..6d7f9cc --- /dev/null +++ b/third_party/fatfs/doc/ja/unlink.html @@ -0,0 +1,68 @@ + + + + + + + +FatFs - f_unlink + + + + +
+

f_unlink

+

ファイルまたはディレクトリを削除します。

+
+FRESULT f_unlink (
+  const char* FileName  /* ファイルまたはディレクトリ名へのポインタ */
+);
+
+
+ +
+

引数

+
+
FileName
+
削除対象のファイルまたはディレクトリ名の入った'\0'で終わる文字列へのポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_NO_FILE
+
ファイルが見つからない。
+
FR_NO_PATH
+
パスが見つからない。
+
FR_INVALID_NAME
+
パス名が不正。
+
FR_INVALID_DRIVE
+
ドライブ番号が不正。
+
FR_DENIED
+
対象ファイル・ディレクトリがリード・オンリー状態、対象ディレクトリが空でない場合など。
+
FR_NOT_READY
+
メディアがセットされていないなど、物理ドライブが動作不能状態。
+
FR_WRITE_PROTECTED
+
メディアが書き込み禁止状態。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_ENABLED
+
論理ドライブにワーク・エリアが割り当てられていない。
+
FR_NO_FILESYSTEM
+
ディスク上に有効なFATパーテーションが見つからない。
+
+
+ + +
+

解説

+

ファイルまたはディレクトリを削除します。リード・オンリー構成や_FS_MINIMIZE >= 1ではこの関数はサポートされません。

+
+ +

戻る

+ + diff --git a/third_party/fatfs/doc/ja/write.html b/third_party/fatfs/doc/ja/write.html new file mode 100644 index 0000000..b7ff34e --- /dev/null +++ b/third_party/fatfs/doc/ja/write.html @@ -0,0 +1,71 @@ + + + + + + + +FatFs - f_write + + + + +
+

f_write

+

ファイルにデータを書き込みます。

+
+FRESULT f_write (
+  FIL* FileObject,     /* ファイル・オブジェクト */
+  const void* Buffer,  /* 書き込みデータ */
+  WORD ByteToWrite,    /* 書き込むバイト数 */
+  WORD* ByteWritten    /* 書き込まれたバイト数 */
+);
+
+
+ +
+

引数

+
+
FileObject
+
ファイル・オブジェクト構造体へのポインタを指定します。
+
Buffer
+
書き込むデータを格納したバッファを指すポインタを指定します。
+
ByteToWrite
+
書き込むバイト数(0〜65535)を指定します。
+
ByteWritten
+
書き込まれたバイト数を格納する変数を指すポインタを指定します。
+
+
+ + +
+

戻り値

+
+
FR_OK (0)
+
正常終了。
+
FR_DENIED
+
非書き込みモードで開いたファイルに書き込もうとした。
+
FR_RW_ERROR
+
ディスク・エラーまたは内部エラーによる失敗。
+
FR_NOT_READY
+
メディアがセットされていないなど、ディスク・ドライブが動作不能状態。
+
FR_INVALID_OBJECT
+
無効なファイルオブジェクト。
+
+
+ + +
+

解説

+

書き込み開始位置は、ファイルR/Wポインタの現在位置からになります。ファイルR/Wポインタは実際に書き込まれたバイト数だけ進みます。書き込み中にディスクが一杯になったときは、*ByteWrittenはByteToWriteよりも小さくなります。リード・オンリー構成ではこの関数はサポートされません。

+
+ + +
+

参照

+

f_open, f_read, f_close, FIL

+
+ +

戻る

+ + -- cgit v1.3.1