| emFile is a file system
for embedded applications which can be used on any media, for which
you can provide basic hardware access functions. emFile is a high
performance library that has been optimized for minimum memory consumption
in RAM and ROM, high speed and versatility. It is written in ANSI
C and can be used on any CPU. |
Main Features
- MS DOS/MS Windows-compatible FAT12, FAT16 and FAT32 support.
- An optional module that handles long file names of FAT media.
- Multiple device driver support. You can use different device
drivers with emFile, which allows you to access different types
of hardware with the file system at the same time.
- MultiMedia support. A device driver allows you to access different
media at the same time.
- OS support. emFile can be easily integrated into any OS. This
allows using emFile in a multi-threaded environment.
- ANSI C stdio.h-like API for user applications. An application
using the standard C I/O library can easily be ported to use emFile.
- Very simple device driver structure. emFile device drivers need
only basic functions for reading and writing blocks. There is
a template included.
- An optional device driver for NAND flash devices, which can
be easily used with any kind of NAND flashes.
- An optional device driver for MultiMedia & SD cards using SPI
mode or card mode that can be easily integrated.
- An optional IDE driver, which is also suitable for CompactFlash
using either .True IDE. or .Memory Mapped. mode.
- An optional NOR flash (EEPROM) driver that handles different
flash sector sizes.
- An optional proprietary file system (EFS) with native long file
name support.
|
Basic Concepts
 |
API Layer
The API Layer is the interface between emFile
and the user application. It is subdivided in two parts, Storage
API and File System API. The File System API contains file functions
in ANSI C stdio style, such as FS_FOpen(), FS_FWrite() etc. The
API Layer transfers these calls to the File System Layer. Currently
the FAT file system or an optional file system, called EFS, are
available for emFile. Right now they cannot be used simultaneously.
The Storage API contains the functions which are required to initialize
and access a storage medium. The Storage API allows sector read
and write operations. The API Layer transfers these calls to the
Storage Layer. The Storage API is optimized for applications which
do not require file system functionality like file and directory
handling. A typical application which uses the Storage API could
be a USB mass storage device, where data has to be stored on a medium,
but all file system functionality is handled by the host PC.
File System Layer
The file system layer translates file operations
to logical block (sector) operations. After such a translation,
the file system calls the logical block layer and specifies the
corresponding device driver for a device.
Storage Layer
The main purpose of the Storage Layer is to synchronize
accesses to a device driver. It furthermore provides a simple interface
for the File System API. The Storage Layer calls a device driver
to perform a block operation. It also contains the cache mechanism.
Device Driver
Device drivers are low-level routines that are
used to access sectors of the device and to check status. It is
hardware independent but depends on the storage medium.
Hardware Layer
These are the low level routines to access your
hardware. These routines simply read and store fixed length sectors.
The structure of the device driver is simple in order to allow easy
integration of your own hardware. |
For more information download
the trial version including manual |