FAT File System Module


FatFs module is an experimental project to implement FAT file system to small embdded systems. The FatFs module is written in compliance with ANSI C, therefore it is independent of hardware architecture. It can be incorporated into most small microcontrollers, such as PIC, AVR, H8, Z80 and etc..., without any change. I created two modules in different configurations in consideration of various use. To use the FatFs module, low level disk I/O functions for each media must be provided by user.

Features of FatFs Module

Features of Tiny-FatFs Module

Memory Usage

There are some configuration options to eliminate unused functions to reduce module size. Following tables are memory consumption in unit of byte on avr-gcc.

FatFs
SectionStd cfg.Min cfg.
Program (R/W cfg.)82826294
Program (R/O cfg.)44823704
Work Area (static)2
Work Area (dynamic)544 + 540 * <files>
Tiny-FatFs
SectionStd cfg.Min cfg.
Program (R/W cfg.)68685208
Program (R/O cfg.)38043136
Work Area (static)2
Work Area (dynamic)538 + 24 * <files>

Application Interface

FatFs/Tiny-FatFs module provides following functions.

Disk I/O Interface

FatFs/Tiny-FatFs module requires following functions to lower layer to read/write physical disk and to get current time.

Resources

The FatFs/Tiny-FatFs module is a freeware and is opened for education, research and development. You can use, modify and republish it for personal, non-profit or profit use without any limitation under your responsibility.