100 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | |
| <html lang="en">
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 | |
| <meta http-equiv="Content-Style-Type" content="text/css">
 | |
| <link rel="alternate" hreflang="ja" title="Japanese version" href="00index_j.html">
 | |
| <link rel="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default">
 | |
| <title>FatFs - FAT Files System Module</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| <h1>FAT File System Module</h1>
 | |
| <hr>
 | |
| 
 | |
| <div class="abst">
 | |
| <img src="layers.png" class="rset" width="245" height="255">
 | |
| <p>FatFs module is an experimental project to implement a FAT file system to small embdded system. Because the module is written in compliance with ANSI C, it can be used for most 8/16 bit microcontrollers, such as PIC, AVR, H8, Z80 and etc..., without any modification. To use the FatFs module, low level disk I/O functions for each recording media must be provided by user. I created two modules in different configurations in consideration of various use. For read only applications, wriiting codes can also be eliminated to reduce the code size.</p>
 | |
| 
 | |
| <h4>Features of FatFs Module</h4>
 | |
| <ul>
 | |
|  <li>Separated buffer for FAT and each file. Suitable for fast multiple file accsess.</li>
 | |
|  <li>Low memory consumption (ex. avr-gcc)
 | |
|   <ul>
 | |
|    <li>Program Code: 7752 bytes (R/W cfg.), 4154 bytes (R/O cfg.)</li>
 | |
|    <li>Static Work Area: 2 bytes</li>
 | |
|    <li>Dynamic Work Area: 544 + 542 * <files> bytes</li>
 | |
|   </ul>
 | |
|  </li>
 | |
|  <li>Supports FAT16(+FAT64) and FAT32 <small>(FAT64: FAT16 in 64KB/cluster)</small></li>
 | |
|  <li>Supports 8.3 format file name and NT lower capital flags</li>
 | |
|  <li>Supports two partitioning formats: FDISK (only primariy partition) and SFD (only 512B/sector)</li>
 | |
| </ul>
 | |
| <h4>Features of Tiny-FatFs Module</h4>
 | |
| <ul>
 | |
|  <li>Only a common buffer for FAT and each file to reduce memory consumption.</li>
 | |
|  <li>Low memory consumption (ex. avr-gcc), suitable for small memory system (1KB)
 | |
|   <ul>
 | |
|    <li>Program Code: 6470 bytes (R/W cfg.), 3556 bytes (R/O cfg.)</li>
 | |
|    <li>Static Work Area: 2 bytes</li>
 | |
|    <li>Dynamic Work Area: 538 + 24 * <files> bytes</li>
 | |
|   </ul>
 | |
|  </li>
 | |
|  <li>Supports FAT16(+FAT64)</li>
 | |
|  <li>Supports 8.3 format file name and NT lower capital flags</li>
 | |
|  <li>Supports two partitioning formats: FDISK (only primariy partition) and SFD (only 512B/sector)</li>
 | |
| </ul>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h3>Application Interface</h3>
 | |
| <p>FatFs module and Tiny-FatFs module provide following functions.</p>
 | |
| <ul>
 | |
| <li><a href="en/open.html">f_open</a> - Open/Create a File</li>
 | |
| <li><a href="en/close.html">f_close</a> - Close a File</li>
 | |
| <li><a href="en/read.html">f_read</a> - Read File</li>
 | |
| <li><a href="en/write.html">f_write</a> - Write File</li>
 | |
| <li><a href="en/lseek.html">f_lseek</a> - Move R/W Pointer</li>
 | |
| <li><a href="en/sync.html">f_sync</a> - Flush Cached Data</li>
 | |
| <li><a href="en/opendir.html">f_opendir</a> - Open a Directory</li>
 | |
| <li><a href="en/readdir.html">f_readdir</a> - Read a Directory Item</li>
 | |
| <li><a href="en/getfree.html">f_getfree</a> - Get Free Clusters</li>
 | |
| <li><a href="en/stat.html">f_stat</a> - Get File Status</li>
 | |
| <li><a href="en/mkdir.html">f_mkdir</a> - Create a Directory</li>
 | |
| <li><a href="en/unlink.html">f_unlink</a> - Remove a File or Directory</li>
 | |
| <li><a href="en/chmod.html">f_chmod</a> - Change Attribute</li>
 | |
| <li><a href="en/mountdrv.html">f_mountdrv</a> - Force Initialized FatFs Module</li>
 | |
| </ul>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h3>Disk I/O Interface</h3>
 | |
| <p>FatFs module and Tiny-FatFs module require following functions to lower layer to read/write to physical disk and to get current time.</p>
 | |
| <ul>
 | |
| <li><a href="en/dinit.html">disk_initialize</a> - Initialize disk drive</li>
 | |
| <li><a href="en/dstat.html">disk_status</a> - Get disk status</li>
 | |
| <li><a href="en/dread.html">disk_read</a> - Read sector(s)</li>
 | |
| <li><a href="en/dwrite.html">disk_write</a> - Write sector(s)</li>
 | |
| <li><a href="en/fattime.html">get_fattime</a> - Get current time</li>
 | |
| </ul>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h3>Resources</h3>
 | |
| <p>The FatFs module is opened for education, reserch and development. You can use, modify and republish it for personal, non-profit or profit use without any limitation under your responsibility.</p>
 | |
| <br>
 | |
| <ul>
 | |
| <li><a href="rwtest.png">Bench Mark</a> (Test Board: ATmega64/9.2MHz with <a href="rw_mmc.jpeg">MMC</a>/<a href="rw_ata.jpeg">HDD</a>/<a href="rw_cfc.jpeg">CFC</a>)</li>
 | |
| <li><a href="http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx">FAT32 Specification</a> (Microsoft)</li>
 | |
| <li><a href="http://elm-chan.org/docs/mmc/mmc_e.html">How to Use an MMC</a></li>
 | |
| </ul>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <hr>
 | |
| </body>
 | |
| </html>
 |