Main
Contact
Comments
Intro
Hardware
Software
FAT32
Photos
ASP.NET
ASP
Perl/CGI
NAS Sys
Libraries
Utilities
Projects DB
Parts Source
MP3Car
YAMMP
Oxygen MP3
PJRC
Z Player
PRUK2000
DSP MP3
Add a link
FAT32 File IO Library


About

This project was originally intended as a FAT32 file IO library for the Atmel AVR, but has now grown into a general multipurpose platform independent C code implementation of a FAT32 driver with read & write support as well as the ability to use long filenames.
It started life in my MP3 project in 2003 with only very basic read support, and grew into a more fully featured module with a stdio like interface providing functions such as fopen(), fgetc(), fputc(), fread(), fwrite(), etc.
The project is aimed at applications which require file system support, such as MP3 players, data loggers, etc and has a low memory footprint with customizable build options to enable it to run on platforms such as the Atmel AVR, ARM & PIC microcontrollers.


Download Source Code


If this is useful to you, please donate to keep this site alive...

The module design is layered & groups similar functions together to provide an easy to read and follow implementation of a file system driver.
If memory usage is tight, higher level file IO methods could be dropped to reduce the designs footprint.

Hardware Support
This release provides a PC testbench for reading attached storage devices in Windows 2000/XP or mounting an image file of a hard disk/USB memory stick.
Linking in custom device drivers is easily achieved by modifying the low level access layer to point to the your custom drivers relevant function calls.

History / Previous Versions
The driver was originally developed on an Atmel AVR ATmega128 using only the internal SRAM, and whilst the new design does not natively fit in that little SRAM, designs employing some extra memory mapped RAM & ROM should be able to make use of the latest read/write driver.
For those with smaller devices, the older versions of the code may prove more appropriate if just simple read only access is required.
- Version 2.x (2007) - Read + Write - Latest version, bigger interface layer.
- Version 1.0 (2006) - Read only - Simple stdio like interface + AVR IDE driver.
- Version 0.1 (2004) - Read only - Limited access functions, but low memory usag & AVR IDE driver.

Testing
The design has been tested on various platforms, but the main development has been done using an image of a hard disk drive running under Windows XP.


Contact
If you have any questions about the code, etc please use contact page located here...

Links
-
Microsoft FAT32 specification - Link
-
Wiki page on FAT - Link
-
Paul Stoffregen's FAT32 description - Link

(c) R. Riglar 2003-2006
Disclaimer