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=
"ja" title=
"オリジナル版" href=
"http://elm-chan.org/fsw/ff/00index_j.html">
11 <link rel=
"alternate" hreflang=
"en" title=
"英文版" href=
"00index_e.html">
12 <link rel=
"stylesheet" href=
"css_j.css" type=
"text/css" media=
"screen" title=
"ELM Default">
13 <title>FatFs 汎用FATファイルシステム モジュール
</title>
17 <h1>FatFs 汎用FATファイルシステム モジュール
</h1>
21 <img src=
"img/layers.png" class=
"rset" width=
"245" height=
"255" alt=
"layer">
22 <p>FatFsは小規模な組み込みシステム向けの汎用FATファイルシステム モジュールです。ANSI C(C89)準拠でハードウェア アーキテクチャには依存しないので、必要なワーク エリアが確保できれば、
8051, PIC, AVR, SH, Z80,
68k, H8, ARMなど安価なマイコンでも使用可能です。このほか、FatFsを極小マイコン向けにシュリンクした
<a href=
"http://elm-chan.org/fsw/ff/00index_p.html">ぷちFatFs
</a>↗ もあります。
</p>
23 <h4>FatFsモジュールの特徴
</h4>
25 <li>Windows互換 FATファイル システム
</li>
27 <li>コンパクトなコードとRAM使用量
</li>
30 <li>複数のボリューム(物理ドライブ・区画)
</li>
31 <li>DBCSを含む複数のANSI/OEMコード ページの選択
</li>
32 <li>長いファイル名(LFN)への対応
</li>
35 <li>リード オンリー構成、一部APIの削除、バッファ構成、その他…
</li>
43 <h3>上位レイヤ インターフェース
</h3>
44 <p>FatFsモジュールは、アプリケーション レイヤに対し、次のファイル操作関数(API)を提供します。つまり、このリストはFatFsにできることをシンプルに示しています。
</p>
46 <li><a href=
"ja/mount.html">f_mount
</a> - ワークエリアの登録・抹消
</li>
47 <li><a href=
"ja/open.html">f_open
</a> - ファイルのオープン・作成
</li>
48 <li><a href=
"ja/close.html">f_close
</a> - ファイルのクローズ
</li>
49 <li><a href=
"ja/read.html">f_read
</a> - ファイルの読み出し
</li>
50 <li><a href=
"ja/write.html">f_write
</a> - ファイルの書き込み
</li>
51 <li><a href=
"ja/lseek.html">f_lseek
</a> - リード/ライト ポインタの移動, ファイルの拡張
</li>
52 <li><a href=
"ja/truncate.html">f_truncate
</a> - ファイル サイズの切り詰め
</li>
53 <li><a href=
"ja/sync.html">f_sync
</a> - キャッシュされたデータのフラッシュ
</li>
54 <li><a href=
"ja/forward.html">f_forward
</a> - ファイル データをストリーム関数に転送
</li>
55 <li><a href=
"ja/stat.html">f_stat
</a> - ファイル/サブ ディレクトリの存在チェックと情報の取得
</li>
56 <li><a href=
"ja/opendir.html">f_opendir
</a> - ディレクトリのオープン
</li>
57 <li><a href=
"ja/closedir.html">f_closedir
</a> - ディレクトリのクローズ
</li>
58 <li><a href=
"ja/readdir.html">f_readdir
</a> - ディレクトリの読み出し
</li>
59 <li><a href=
"ja/mkdir.html">f_mkdir
</a> - サブ ディレクトリの作成
</li>
60 <li><a href=
"ja/unlink.html">f_unlink
</a> - ファイル/サブ ディレクトリの削除
</li>
61 <li><a href=
"ja/chmod.html">f_chmod
</a> - ファイル/サブ ディレクトリの属性の変更
</li>
62 <li><a href=
"ja/utime.html">f_utime
</a> - ファイル/サブ ディレクトリのタイムスタンプの変更
</li>
63 <li><a href=
"ja/rename.html">f_rename
</a> - ファイル/サブ ディレクトリの名前の変更・移動
</li>
64 <li><a href=
"ja/chdir.html">f_chdir
</a> - カレント ディレクトリの変更
</li>
65 <li><a href=
"ja/chdrive.html">f_chdrive
</a> - カレント ドライブの変更
</li>
66 <li><a href=
"ja/getcwd.html">f_getcwd
</a> - カレント ディレクトリの取得
</li>
67 <li><a href=
"ja/getfree.html">f_getfree
</a> - ボリューム空き領域の取得
</li>
68 <li><a href=
"ja/getlabel.html">f_getlabel
</a> - ボリューム ラベルの取得
</li>
69 <li><a href=
"ja/setlabel.html">f_setlabel
</a> - ボリューム ラベルの設定
</li>
70 <li><a href=
"ja/mkfs.html">f_mkfs
</a> - 論理ドライブのフォーマット
</li>
71 <li><a href=
"ja/fdisk.html">f_fdisk
</a> - 物理ドライブの分割
</li>
72 <li><a href=
"ja/gets.html">f_gets
</a> - 文字列の読み出し
</li>
73 <li><a href=
"ja/putc.html">f_putc
</a> - 文字の書き込み
</li>
74 <li><a href=
"ja/puts.html">f_puts
</a> - 文字列の書き込み
</li>
75 <li><a href=
"ja/printf.html">f_printf
</a> - 書式化文字列の書き込み
</li>
76 <li><a href=
"ja/tell.html">f_tell
</a> - 現在のリード/ライト ポインタの取得
</li>
77 <li><a href=
"ja/eof.html">f_eof
</a> - ファイル終端の有無の取得
</li>
78 <li><a href=
"ja/size.html">f_size
</a> - ファイル サイズの取得
</li>
79 <li><a href=
"ja/error.html">f_error
</a> - ファイルのエラーの有無の取得
</li>
85 <h3>下位レイヤ インターフェース
</h3>
86 <p>FatFsモジュールは、単なるファイル システム レイヤなので、ストレージ デバイス制御レイヤは含まれません。使用するプラットフォームやストレージ デバイスに対応した制御関数は、ユーザによって提供される必要があります。FatFsモジュールは、下位レイヤに対し標準的には次のインターフェースを要求します。拡張機能、たとえばOS関連機能を有効にしたときは、加えてプロセス/メモリ操作関数なども必要になります。サンプル プロジェクトに下位レイヤの実装例を示します。
</p>
88 <li><a href=
"ja/dstat.html">disk_status
</a> - デバイスの状態取得
</li>
89 <li><a href=
"ja/dinit.html">disk_initialize
</a> - デバイスの初期化
</li>
90 <li><a href=
"ja/dread.html">disk_read
</a> - データの読み出し
</li>
91 <li><a href=
"ja/dwrite.html">disk_write
</a> - データの書き込み
</li>
92 <li><a href=
"ja/dioctl.html">disk_ioctl
</a> - その他のデバイス制御
</li>
93 <li><a href=
"ja/fattime.html">get_fattime
</a> - 日付・時刻の取得
</li>
100 <p>FatFsモジュールはフリー ソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーション ノートを参照してください。
</p>
102 <li><a href=
"http://elm-chan.org/fsw/ff/00index_j.html"><em>FatFsホームページ
</em></a>↗
</li>
103 <li><a href=
"http://elm-chan.org/fsw/ff/bd/"><em>FatFsユーザ フォーラム
</em></a>↗
</li>
104 <li>最初に読め:
<a href=
"ja/appnote.html">FatFsモジュール アプリケーション ノート
</a></li>
105 <li><a href=
"http://stm32f4-discovery.com/2014/07/library-21-read-sd-card-fatfs-stm32f4xx-devices/">Read SD card with FatFs on STM32F4xx devices by Tilen Majerle
</a>↗ (Quick and easy implementation for STM32F4-Discovery)
</li>
106 <li><a href=
"http://nemuisan.blog.bai.ne.jp/">ねむいさんのぶろぐ
</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)
</li>
107 <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>
108 <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>
109 <li><a href=
"http://elm-chan.org/docs/fat.html">FATファイルシステム概要
</a>↗ (↑を読むためのガイド)
</li>
110 <li><a href=
"http://elm-chan.org/docs/mmc/mmc.html">MMCの使いかた
</a>↗
</li>
111 <li><a href=
"img/rwtest.png">パフォーマンス テスト
1</a> (ATmega64/
9.2MHz with MMC via SPI, HDD/CFC via GPIO)
</li>
112 <li><a href=
"img/rwtest2.png">パフォーマンス テスト
2</a> (LPC2368/
72MHz with MMC via MCI)
</li>
118 <p class=
"foot"><a href=
"../../fsw.html">戻る
</a></p>