CMX-FFS-SAFE-FAT is the Fail Safe, PC compatible file system for embedded
device developers whose products require FAT12/16/32 compliant media support
as well as added protection against the loss of data caused by unanticipated
resets. Typical applications include adding a Secure Digital, Compact Flash
or a Multimedia card to a device. The system includes pre-tested sample
drivers for ease of development. The API is standard and easy to use with
sample applications in source code provided to ensure quick integration.
Hardware reference designs are also available.
- Fail Safe Operation
- Long FileNames
- ANSI C compliant
- Standard API (fopen(), fread() etc.)
- Highly Scalable
- Reduced Footprint
- Multiple Simultaneous Files Open
- Handles Media Errors
- RTOS Independent
- Fully Integrated with CMX RTOSes, TCP/IP and USB stacks
- Robust - Re-entrant
- Royalty Free Source
- Sample Applications
- Comprehensive Programmer's Guide
Fail Safe Operation
CMX-FFS-SAFE-FAT executes all operations in a fail-safe manner, and in
the event of an unanticipated system reset, it returns in a consistent and
usable state. When data in a file is changed, the original file is not
modified until either a file flush or file close is called. At this point
the file state is switched atomically and the new data becomes valid. This
applies equally to all operations that modify the content of the file, such
as file write, file delete, create/delete directory, or rename.
If a storage medium uses CMX-FFS-SAFE-FAT and it is reset or is moved to
another device running CMX-FFS-SAFE-FAT, then the system works cleanly,
without loss of data or risk of file and meta-data corruption.
Standard drivers are available for a variety of devices and configurations
including Compact Flash, MultiMedia Cards, Secure Digital Cards, IDE mode
and ATA. Also, a RAM drive is provided as an example for easy start-up and
testing. Everything is designed to make integration and testing as easy and
risk free as possible.
An optional Flash Translation Layer is offered providing a reliable
interface for NAND flash or DataFlash. This Translation Layer allows the
file system to manage flash and provides a logical sector interface to the
embedded host. The Flash Translation Layer can support up to 4 Terabytes
for each array, provides 528, 2112 and 4224 byte pages and supports all
standard NAND devices.
CMX-FFS-SAFE-FAT is designed for portability. It is tested on many
different compilers, many different hardware platforms and is then syntax
checked to ensure the maximum level of compatibility. The User
implementation guide contains detailed information for porting the system.
CMX-FFS-SAFE-FAT is agnostic in regards to operating system, and in a
multi-user environment, the host's semaphore/mutex mechanism should be
used (it is never possible for two simultaneous writes to be active on a
flash device such as a compact flash card). A RAM drive is also provided
enabling a system to be run independently of any hardware constraints,
including the availability of a new hardware interface. Typically,
customers have a file system up and running within hours of receiving the