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 8051, 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 the memory consumption in unit of byte on avr-gcc.

FatFs
SectionStd cfg.Min cfg.
Program (R/W cfg.)85266042
Program (R/O cfg.)41723402
Static Work Area2
Dynamic Work Area548 + 540 * <files>
Tiny-FatFs
SectionStd cfg.Min cfg.
Program (R/W cfg.)71384862
Program (R/O cfg.)35422778
Static Work Area2
Dynamic Work Area540 + 24 * <files>

Application Interface

FatFs/Tiny-FatFs module provides following functions.

Disk I/O Interface

Since the FatFs/Tiny-FatFs module is completely separated from disk I/O layer, it requires following functions to lower layer to read/write physical disk and to get current time. These functions must be provided by user.

Resources

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