Embedded FAT File System
A high performance, widely used, and robust DOS/Win-Compatible File System, TargetFAT includes the following features:
- Standards compliant. Provides POSIX and Standard C compatible application program interface and behavior, except for links and access protections not supported by FAT. Rich set of extensions implemented using feedback from wide embedded developer user base.
- High performance. Streaming read and write throughput is approximately the same as the underlying I/O speed of the backing media.
- Reentrant. Designed for multitasking environments. Uses per-volume access semaphores to allow independent concurrent access to multiple volumes.
- Supports FAT12, FAT16, and FAT32. Within the allowed ranges for each FAT type, the cluster size can be manually assigned or left to use default values. The theoretical limit for FAT32, the format that supports the largest volume size, is 2TB.
- Long file name support (VFAT) and UTF8 file name support can be enabled as compile-time options. Proven Unicode support with large base of Far East users.
- Guaranteed file system integrity across unexpected shutdowns. Only data written since last synchronizing operation (close(), fflush(), etc.) can be lost. Closed files, directory structures, files open for reading are never at risk. Performs automatic power-fail recovery during mount.
- Works with hard drives, memory cards, and flash translation layers. Supported by Blunk’s TargetFTL-NDM and TargetFTL-NOR, for NAND and NOR flash memories respectively.
- Supports background reclamation of 'dirty' flash sectors when used with TargetFTL-NDM and TargetFTL-NOR, via the vclean() call which may be polled by a low priority task.
- Supports user configurable, volume level encryption.
- Shares API functions and management routines with TargetFFS (flash memory), TargetRFS (RAM), TargetXFS (huge volumes), and TargetZFS (compressed read-only), Blunk’s other file systems. Seamless interoperation, with common 'current working directory' implementation.
- Configurable RAM footprint. Either include cluster bit maps for higher performance and guaranteed power-fail recovery or exclude them for smaller RAM footprint. Configurable FAT and user data cache sizes.
- Sample applications include a binary search application, a power-loss recovery test, a shell that supports "cd", "ls", "mkdir", "pwd", etc, and other applications that test assorted file system calls. The shell may be extended with user commands.
- Supports multiple volumes. The number is limited only by the amount of available RAM for data structures and cached FAT tables.
- Includes a function library for accessing and modifying a volume’s Master Boot Record.
- Used world-wide in hand-held/cell phone devices.
- Source code is 100% ANSI C and has been tested using PC-lint and multiple ANSI C compilers.
- Developed using TargetOS™, Blunk Microsystems’ full-featured royalty-free real time operating system. Easily ported to other operating systems or to polling environments that do not use a kernel.
- Royalty-free product license. Includes ANSI C source code, user's manual, sample applications, and one year of technical support.