FAT File System

Embedded FAT12, FAT16 & FAT32 File System

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.

FAT File System Overview

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 [email protected] for further information.

Next
Previous