Embedded NOR Flash File System
A best-of-class state-of-the-art NOR flash file system, liteFS-NOR includes the following features:
- A reliable, high performance, re-entrant UNIX-like embedded file system with a full POSIX and ANSI C compliant application program interface. Use of NOR flash for the backing store is invisible to the application layer.
- Guaranteed file system integrity across unexpected shutdowns. Only data written since the last synchronizing operation can be lost. Closed files, directory structures, and files open for reading are never at risk. An unexpected power loss rolls the volume back to its state at the most recent synchronization, except for any user data that has been overwritten.
- For fully atomic updates, liteFS-NOR can be configured to write modified user data to new logical sectors, so that in between explicit synchronizations, groups of file system updates are atomic. If power is lost prior to completion, the exact volume state at the previous synchronization is restored.
- Implements program-erase wear-leveling to prevent early device failure. Erase cycles are spread evenly across all erasable blocks. The wear count is maintained from the first time a flash volume is formatted. The current wear count and other statistics are provided by vstat().
- Performs read-wear leveling to avoid the bit errors that can result from repetitively reading the same flash location. When a read-count threshold is reached, the affected data is copied to a new location, refreshing its voltage margins.
- Supports background garbage collection, to reclaim dirty flash sectors during idle periods or by a low priority task. Otherwise, block erasures are performed just-in-time.
- Supports the POSIX "self", "group", and "other" file access protections, allowing applications to restrict some access to privileged tasks.
- Caches both user data and file system metadata for a configurable fixed RAM footprint that performs well with all volume sizes, up to and including Terabytes.
- Optional task-based buffering provides constant streaming rates in spite of intermittent halts in device throughput due to program or erase delays, by either reading-ahead or writing-behind. Enabled by an open() flag, this buffering is otherwise transparent to the application.
- Supports all parallel and serial NOR device types including Single Level Cell (SLC), Multi-Level Cell (MLC), Intel/ST's 90nm 'Sibley' flash, and Spansion's 'Eclipse' and GL-S flash.
- Other features: Per-task Current Working Directory support. Use with an RTOS or in polled mode. Sample applications and a driver test application. >= 242 character file names. Includes full 100% ANSI C source code and one-year of technical support.
- At-a-glance image of liteFS-NOR system components.
liteFS-NOR is royalty free. It may only be distributed as fully linked executable code. $5K license limits distribution to 10,000 units and use to one site or three programmers. $5K upgrade removes unit, site, and seat limitations.