The Platform Builder contains a core library, Tffscore.lib, and a single source file, Flcustom.c, which together compose the TrueFFS driver. Flcustom.c contains translation layers, socket interfaces, and MTDs. All three of these components can be modified to conform to individual design features of a Windows CE–based platform.
However, to integrate any of these three components into the TrueFFS driver, the component’s registration routine must be called during initialization of the driver. This task is performed by the flRegisterComponents function, which is defined in Flcustom.c. Prototypes for all the components’ registration routines are provided in the Stdcomp.h header file.
OEMs can modify flRegisterComponents to include the desired subset of components for the application. The flRegisterComponents function takes no parameters and has no return value. It simply consists of calls to each component’s registration routine.
The following sections provide additional information about the components—MTDs, translation layers, and socket interfaces—and their registration routines.
The following table shows existing MTDs and their corresponding registration routines.
Manufacturer |
Product |
Registration routine to be
|
M-Systems, Inc. | DiskOnChip | flRegisterDOC2000 |
Series 2000 | flRegisterCDSN | |
FlashLite (8-bit mode) | flRegisterI28F008 | |
FlashLite (16-bit mode) | flRegisterI28F016 | |
Intel | Series II (8-bit mode) | flRegisterI28F008 |
Series II (16-bit mode) | flRegisterI28F016 | |
Series II+ | flRegisterI28F016 | |
Series 100 MiniCard (8-bit mode) | flRegisterI28F008 | |
Series 100 MiniCard (16-bit mode) | flRegisterI28F016 | |
Series 200 MiniCard | flRegisterCFISCS | |
Value Series 100 (8-bit mode) | flRegisterI28F008 | |
Value Series 100 (16-bit mode) | flRegisterI28F016 | |
Value Series 200 (8-bit mode) | flRegisterCFISCS | |
Value Series 200 (16-bit mode) | flRegisterCFISCS |
OEMs can omit unnecessary translation layers. For example, an OEM who wants to use only built-in DiskOnChip hardware can omit the FTL and keep the NTFL. However, TrueFFS supports storage of both FAT16 and FAT32 data structures.
The following table shows the registration routines of existing translation layers.
Registration routine |
Hardware |
flRegisterFTL | NOR-based linear flash memory hardware |
flRegisterNFTL | NAND-based linear flash memory hardware |
The following table shows the registration routines for existing socket layers.
Registration routine |
Hardware |
flRegisterFixedFlash | Built-in DiskOnChip hardware |
flRegisterCS | PC Card–based linear flash memory hardware |