FAT File System - Embedded FAT12, FAT16 & FAT32 File System

FAT File System Overview

FAT File System (FAT FS) from Zeeis enables the embedded developer to easily and quickly integrate the MS-DOS/Windows compatible file system interoperability with all major operating systems into any devices. It has tested on several real time operating systems and also can used with no RTOS. This high performance source code has been optimized for minimum memory consumption in RAM and ROM, low cost and high speed.

In 2008, Zeeis File System product shipped in over 25 million devices, which is the leading file system product for mobile, consumer electronics and storage applications.

Zeeis Embedded FAT File System is reliable, full-featured, high-performance FAT12/16/32 and VFAT (long file names) file system for MCUs, CPUs and DPSs. It is a source code product designed for embedded applications that require the access PC-compatible storage media and it supports fixed and removable media, such as Secure Digital (SD), SDHC Cards, MultiMediaCard (MMC), Compact Flash Cards, ATA/IDE Hard Drives, SATA Hard Drives, RAM Disk, USB Mass Storage, DiskOnChip, NAND Flash, NOR Flash and other devices.

Embedded FAT File System with full source code, it is consistent ANSI C code with extensive comments and has been tested using vast majority development tools included ARM STD, ARM ADS, ARM RVDS, GNU GCC, Keil and Visual C++. The file systems accessed via a unified standard API, POSIX-compatible interface for file operations.

FAT File System Features

  • Industry Standard FAT Support: FAT12, FAT16, FAT32 and VFAT (Long file name)
  • Fully MS DOS/Windows-compatible FAT file system
  • Processor and RTOS independent
  • 100% ANSI C source code for guaranteed portability
  • Optimized performance and reliability for limited resources MCUs/DSPs
  • RAM and ROM resources usage highly scalable by configurable features
  • Extremely small footprint: Lite Edition <1KB RAM / 4KB ROM, Standard Edition: <2K RAM / <10K ROM
  • POSIX-compatible interface (fopen(), fread(),fwrite(), fclose(), etc.)
  • Media format and partition creation
  • Run-time media errors handling
  • Extensive code comments and developer’s document
  • Sample applications and device drivers
  • 1 year free technical support for unlimited number of support cases
  • 1 year free upgrades
  • Royalty-free & Business-friendly License

Media Device Support

  • Secure Digital Cards: SD, SDHC, microSD, microSDHC
  • CompactFlash
  • MultiMediaCard (MMC)
  • USB
  • SATA
  • ATA/IDE
  • PCMCIA
  • NAND Flash
  • NOR Flash
  • DataFlash

FAT File System Application Programming Interface

FS_mount Mount the drive and create the cache buffer for embedded FAT file system.

FS_unmount Free all resources of the embedded FAT file system.

FS_format Format the drive.

FS_size Get the drive and FAT file system size information.

FS_mkdir Create a directory.

FS_chdir Change the current directory.

FS_rmdir Remove empty directory.

FS_getCWD Return the current directory path.

FS_opendir Open a directory.

FS_closedir Close the directory stream.

FS_readdir Read a directory.

FS_remove Remove file by the path.

FS_length Return length of a file.

FS_fopen Open a file.

FS_fread Read data from a stream.

FS_fwrite Write data to a stream.

FS_fflush Flush a stream.

FS_fclose Close a file stream.

FS_fseek Move the file pointer to a specified position.

FS_ftell Get the current position of a file pointer.

FS_feof Test for end-of-file on a stream.

FS_rewind Repositions the file pointer to the beginning of a file.

FS_truncate Change the size of file to length.

FS_rename Rename file or directory.

FS_findFirst Find files or subdirectories by wildcard in a directory.

FS_findNext Continue a file search from a previous call to the FS_findFirst() function.

FS_setDateTime Set a file or directory date and time.

FS_getDateTime Get a file or directory date and time.

FS_setAttributes Set a file or directory attributes.

FS_getAttributes Get a file or directory attributes.

Driver and Port Interface

FATDriver_init


FS_STATUS FATDriver_init( FATDriver_DEVICE * device )


Initialize physical storage device driver for FAT file system.

Parameters


device Device pointer to FSDriver_DEVICE structure.


Returns

FS_SUCCESS for success, else an error code is returned.

FATDriver_deinit


FS_STATUS FATDriver_deinit( void )


Deinitialize physical storage device driver for FAT file system.

Returns

FS_SUCCESS for success, else an error code is returned.

FATDriver_getStatus


FS_STATUS FATDriver_getStatus( void )


Retrieve the removable media card’s current status for FAT file system.

Returns

FS_SUCCESS for success, else an error code is returned.

FATDriver_writeSectors


FS_STATUS FATDriver_writeSectors( void * buffer, unsigned long sector, unsigned long count )


Write sectors to the storage device.

Parameters


buffer Data buffer to be written to the stroage device. sector Start sector address for written data. count Maximum number of sectors to be written.


Returns

FS_SUCCESS for success, else an error code is returned.

FATDriver_readSectors


FS_STATUS FATDriver_readSectors( void * buffer, unsigned long sector, unsigned long count )


Read sectors from the storage device.

Parameters


buffer Data buffer read from storage device. sector Start sector address for read data. count Maximum number of sectors to be read.


Returns

FS_SUCCESS for success, else an error code is returned.

FATPort_getDateTime


void FATPort_getDateTime( FS_DATE_TIME * date_time )


Get the current date and time information from target system.

Parameters


date_time Store the current date and time information.


Licensing and Pricing

Zeeis Embedded FAT File System is a low-cost and royalty-free software IP designed to enable developers design their own final products quickly and easily, so there are no restrictions or limitations on the use or modification for your products.

Please contact us or send email to sales@zeeis.com for further information.

Contact Us