CMX-FFS-THIN is a full-featured, PC compatible file system for embedded
device developers with limited resources available, and wish to add devices
to their products that require a FAT12/16/32 media support.
The code has been highly optimized for both speed and
footprint to allow the developers to extract the most out of their system
with a minimum of effort. Typical usage includes adding a Compact Flash
card 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 - sample applications in source code are provided to ensure quick
integration. Hardware reference designs are also available.
- 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
||Code Data Stack
||Code Data Stack|
||<4K <2K <0.5K
||<6K <2K <0.5|
||<6K <2K <0.5K
||<10K <2K <0.5|
||16K <2K <0.5K
||20K <2K <0.5|
CMX-FFS-THIN is a derivative of the widely used CMX-FFS-FAT system.
CMX-FFS-THIN has been compiled and verified with many development
environments to guarantee the highest possible level of portability.
The User implementation guide contains detailed information for porting
the system. CMX-FFS-THIN is virtually agnostic in regards to operating
systems and is provided with a RAM drive which enables a system to be run
independently of any hardware constraints, such as the availability of a
new hardware hardware interface. Typically, customers have a file system
up and running within hours of receiving the system!
An optional Flash Translation Layer is offered providing a reliable
interface for NAND flash 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-THIN includes a wealth of build options to enable developers to
build exactly the system they need and no more.
Hardware Design and Implementation
CMX Systems, Inc. has a variety of hardware reference designs available
for different hardware platforms and for different peripheral types. These
designs include 8-bit to 32-bit platforms. For a particular environment
please contact CMX directly.
Application Programmer's Interface
A full suite of API functions is provided. The routines are entirely
standard except that their names have been changed to avoid library
conflicts, i.e., fopen() has become f_open(). These routines allow easy
initialization and management of multiple volumes, directories and long
filenames with complete wild card support.
The complete list of API functions is provided below.
The interface between the file system and the physical devices attached
is through the driver interface. This interface is simple and
straightforward to implement and is complemented by a set of sample
drivers and detailed documentation.
The functions that must be implemented in any driver are listed below:
||Called by the file system to get information about the device attached (e.g., number of sectors, FAT type etc.)
||Called by the file system to get the current status of the physical device (e.g., card removed, card changed). For fixed devices this function maybe omitted.
||Called by the file system to read the specified sector of the attached device.
||Called by the file system to write data to the specified sector.
Also provided is a set of tested sample drivers to make porting as straightforward as possible. These include:
|Compact Flash Card
||Supporting True IDE mode/ATA/PC Memory IO mode - with/without interrupts
||SPI mode (either hardware or software driven) and MMC mode
||Allows simple creation of a driver in RAM - very useful for initial testing of the system and where full h/w interface is not yet available
|For drivers not listed please contact firstname.lastname@example.org.