1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
6 <meta http-equiv=
"cache-control" content=
"no-cache">
7 <meta name=
"description" content=
"組み込みシステム向け汎用FATファイル・システム">
8 <link rel=
"start" title=
"Site Top" href=
"../../index_j.html">
9 <link rel=
"up" title=
"Freewares" href=
"../../fsw.html">
10 <link rel=
"alternate" hreflang=
"en" title=
"英文" href=
"00index_e.html">
11 <link rel=
"stylesheet" href=
"css_j.css" type=
"text/css" media=
"screen" title=
"ELM Default">
12 <title>FatFs 汎用FATファイルシステム・モジュール
</title>
16 <h1>FatFs 汎用FATファイルシステム・モジュール
</h1>
20 <img src=
"img/layers.png" class=
"rset" width=
"245" height=
"255" alt=
"layer">
21 <p>FatFsは小規模な組み込みシステム向けの汎用FATファイルシステム・モジュールです。ANSI C準拠でハードウェア・アーキテクチャには依存しないので、必要なワーク・エリアが確保できれば、
8051, PIC, AVR, SH, Z80,
68k, H8, ARMなど安価なマイコンでも使用可能です。FatFsをシュリンクした
<a href=
"http://elm-chan.org/fsw/ff/00index_p.html">ぷちFatFs
</a>↗もあります。
</p>
22 <h4>FatFsモジュールの特徴
</h4>
24 <li>Windows互換 FATファイル・システム
</li>
26 <li>コンパクトなコードとRAM使用量
</li>
29 <li>複数のボリューム(物理ドライブ・区画)
</li>
30 <li>DBCSを含む複数のANSI/OEMコード・ページ
</li>
31 <li>長いファイル名(LFN) (Unicode APIも選択可)
</li>
34 <li>リード・オンリー構成、一部APIの削除、バッファ構成、その他…
</li>
42 <h3>上位レイヤ・インターフェース
</h3>
43 <p>FatFsモジュールは、アプリケーション・レイヤに対し、次のファイル操作関数(API)を提供します。つまり、このリストはFatFsにできることをシンプルに示しています。
</p>
45 <li><a href=
"ja/mount.html">f_mount
</a> - ワークエリアの登録・抹消
</li>
46 <li><a href=
"ja/open.html">f_open
</a> - ファイルのオープン・作成
</li>
47 <li><a href=
"ja/close.html">f_close
</a> - ファイルのクローズ
</li>
48 <li><a href=
"ja/read.html">f_read
</a> - ファイルの読み出し
</li>
49 <li><a href=
"ja/write.html">f_write
</a> - ファイルの書き込み
</li>
50 <li><a href=
"ja/lseek.html">f_lseek
</a> - リード/ライト・ポインタの移動, ファイルの拡張
</li>
51 <li><a href=
"ja/truncate.html">f_truncate
</a> - ファイル・サイズの切り詰め
</li>
52 <li><a href=
"ja/sync.html">f_sync
</a> - キャッシュされたデータのフラッシュ
</li>
53 <li><a href=
"ja/forward.html">f_forward
</a> - ファイル・データをストリーム関数に転送
</li>
54 <li><a href=
"ja/stat.html">f_stat
</a> - ファイル/サブ・ディレクトリの存在チェックと情報の取得
</li>
55 <li><a href=
"ja/opendir.html">f_opendir
</a> - ディレクトリのオープン
</li>
56 <li><a href=
"ja/closedir.html">f_closedir
</a> - ディレクトリのクローズ
</li>
57 <li><a href=
"ja/readdir.html">f_readdir
</a> - ディレクトリの読み出し
</li>
58 <li><a href=
"ja/mkdir.html">f_mkdir
</a> - サブ・ディレクトリの作成
</li>
59 <li><a href=
"ja/unlink.html">f_unlink
</a> - ファイル/サブ・ディレクトリの削除
</li>
60 <li><a href=
"ja/chmod.html">f_chmod
</a> - ファイル/サブ・ディレクトリの属性の変更
</li>
61 <li><a href=
"ja/utime.html">f_utime
</a> - ファイル/サブ・ディレクトリのタイムスタンプの変更
</li>
62 <li><a href=
"ja/rename.html">f_rename
</a> - ファイル/サブ・ディレクトリの名前の変更・移動
</li>
63 <li><a href=
"ja/chdir.html">f_chdir
</a> - カレント・ディレクトリの変更
</li>
64 <li><a href=
"ja/chdrive.html">f_chdrive
</a> - カレント・ドライブの変更
</li>
65 <li><a href=
"ja/getcwd.html">f_getcwd
</a> - カレント・ディレクトリの取得
</li>
66 <li><a href=
"ja/getfree.html">f_getfree
</a> - ボリューム空き領域の取得
</li>
67 <li><a href=
"ja/getlabel.html">f_getlabel
</a> - ボリューム・ラベルの取得
</li>
68 <li><a href=
"ja/setlabel.html">f_setlabel
</a> - ボリューム・ラベルの設定
</li>
69 <li><a href=
"ja/mkfs.html">f_mkfs
</a> - 論理ドライブのフォーマット
</li>
70 <li><a href=
"ja/fdisk.html">f_fdisk
</a> - 物理ドライブの分割
</li>
71 <li><a href=
"ja/gets.html">f_gets
</a> - 文字列の読み出し
</li>
72 <li><a href=
"ja/putc.html">f_putc
</a> - 文字の書き込み
</li>
73 <li><a href=
"ja/puts.html">f_puts
</a> - 文字列の書き込み
</li>
74 <li><a href=
"ja/printf.html">f_printf
</a> - 書式化文字列の書き込み
</li>
75 <li><a href=
"ja/tell.html">f_tell
</a> - 現在のリード/ライト・ポインタの取得
</li>
76 <li><a href=
"ja/eof.html">f_eof
</a> - ファイル終端の有無の取得
</li>
77 <li><a href=
"ja/size.html">f_size
</a> - ファイル・サイズの取得
</li>
78 <li><a href=
"ja/error.html">f_error
</a> - ファイルのエラーの有無の取得
</li>
84 <h3>下位レイヤ・インターフェース
</h3>
85 <p>FatFsモジュールは、単なるファイル・システム・レイヤなので、ストレージ・デバイス制御レイヤは含まれません。使用するストレージに対応した制御関数は、ユーザによって提供される必要があります。FatFsモジュールは、下位レイヤに対し少なくとも次のインターフェースを要求します。OS関連機能を有効にしたときは、これに加えてプロセス/メモリ関連関数も必要になります。サンプル・プロジェクトに下位レイヤの実装例を示します。
</p>
87 <li><a href=
"ja/dstat.html">disk_status
</a> - デバイスの状態取得
</li>
88 <li><a href=
"ja/dinit.html">disk_initialize
</a> - デバイスの初期化
</li>
89 <li><a href=
"ja/dread.html">disk_read
</a> - データの読み出し
</li>
90 <li><a href=
"ja/dwrite.html">disk_write
</a> - データの書き込み
</li>
91 <li><a href=
"ja/dioctl.html">disk_ioctl
</a> - その他のデバイス制御
</li>
92 <li><a href=
"ja/fattime.html">get_fattime
</a> - 日付・時刻の取得
</li>
99 <p>FatFsモジュールはフリー・ソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーション・ノートを参照してください。
</p>
101 <li><a href=
"http://elm-chan.org/fsw/ff/bd/"><em>FatFsユーザ・フォーラム
</em></a>↗
</li>
102 <li>最初に読め:
<a href=
"ja/appnote.html">FatFsモジュール・アプリケーション・ノート
</a></li>
103 <li>最新版:
<a href=
"http://elm-chan.org/fsw/ff/00index_j.html">http://elm-chan.org/fsw/ff/
00index_j.html
</a>↗
</li>
104 <li><a href=
"http://nemuisan.blog.bai.ne.jp/">ねむいさんのぶろぐ
</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)
</li>
105 <li><a href=
"http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html">ARM-Projects by Martin THOMAS
</a>↗ (Examples for LPC2000, AT91SAM and STM32)
</li>
106 <li><a href=
"http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx">FATファイル・システム仕様書 by Microsoft
</a>↗ (The reference document on FAT file system)
</li>
107 <li><a href=
"http://elm-chan.org/docs/fat.html">FATファイル・システム概要
</a>↗ (↑を読むためのガイド)
</li>
108 <li><a href=
"http://elm-chan.org/docs/mmc/mmc.html">MMCの使いかた
</a>↗
</li>
109 <li><a href=
"img/rwtest.png">パフォーマンス・テスト
1</a> (ATmega64/
9.2MHz with MMC via SPI, HDD/CFC via GPIO)
</li>
110 <li><a href=
"img/rwtest2.png">パフォーマンス・テスト
2</a> (LPC2368/
72MHz with MMC via MCI)
</li>
116 <p class=
"foot"><a href=
"../../fsw.html">戻る
</a></p>