Home $5K RTOS Bundle The Blunk Difference Contact Us Downloads

Embedded Flash File Systems


Blunk Microsystems' embedded flash file system, TargetFFS, offers a rugged alternative to mechanical storage systems. Designed for either the NOR (TargetFFS-NOR) or NAND (TargetFFS-NAND) flash memory, TargetFFS implements a reliable, re-entrant flash file system with a POSIX and ANSI C compliant application program interface.


  • Guaranteed Integrity Across Unexpected Resets
  • Reliable, Re-entrant Embedded Flash File System
  • Provides POSIX and Standard C API
  • Use of Flash Memory is Invisible to Applications
  • Supports Dynamic Creation and Deletion of Files, Directories, and Links
  • Complete Wear Leveling
  • Supports Multiple Volumes
  • Includes Sample Applications
  • Royalty Free

As the industry's leading powerfail-safe flash file system, TargetFFS supports multiple volumes and allows dynamic creation and deletion of files, directories, and links with full read and write capability. TargetFFS is not a static ROM-image file system. The use of flash media for the backing store is invisible to the application layer program.

Wear leveling is implemented to prevent premature failure of the flash media. Erase cycles are spread evenly across all blocks. For end-of-life monitoring, the vstat() call provides the current wear count. The wear count is maintained starting with the first time a flash volume is formatted.

TargetFFS provides guaranteed integrity across unexpected power losses. New information is written to flash memory without overwriting old information. Both the control information and user data are protected. If an unexpected power loss occurs, directory structures, closed files, and files opened for reading are never at risk. Only data written since the last synchronizing operation (fclose(), fflush(), etc.) can be lost. When the TargetFFS reboots, it restores the file system to its state at the time of the last synchronizing operation.

TargetFFS supports the large erasable block sizes typical of flash memory, usually 64KB or larger. It has a "thin" hardware dependent layer for maximum ease in porting to new platforms and supports 8, 16, or 32-bit interfaces to the CPU. A single bank of Flash memory can be shared between a boot program and a TargetFFS volume. The User's Manual includes several example drivers.

TargetFFS is a source code product. The source code is 100% ANSI C and has been tested using PC-lint and multiple ANSI C compilers. The only RTOS dependence is the use of two semaphores. Porting consists of writing wrapper functions for the operations of creating, posting tokens to, and acquiring tokens from semaphores. Prototypes and descriptions of the required wrapper functions are provided in the User's Manual.

Three sample applications are supplied: a command line shell, a binary search application, and an upgrade installer. When the upgrade installer runs, it selects the most recent executable file that passes a checksum test and commences downloading an upgrade. The previous executable is deleted after the upgrade completes successfully. If an unexpected power loss occurs, the system resorts to the previously installed upgrade.

For NOR Flash File System, click here:TargetFFS-NOR
For NAND Flash File System, click here:TargetFFS-NAND
For more information, click here: Contact Us