FAT File System Module


layer

FatFs module is an experimental project to implement a 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 (different to FatFs)

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.)85746094
Program (R/O cfg.)42683494
Static Work Area2 + 2*<drives>
Dynamic Work Area550*<drives> + 544*<files>
Tiny-FatFs
SectionStd cfg.Min cfg.
Program (R/W cfg.)71644890
Program (R/O cfg.)36602946
Static Work Area4
Dynamic Work Area542 + 28*<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.


Return