smxFFS™ Flash File System » smxFFS

smxFFS is a flash file system for use with board-resident arrays of NAND flash memory. It has the standard C library file API and it is power fail-safe. The standard C library API includes fopen(), fread(), fwrite(), fseek(), fclose(), etc. for the application. Unlike the smxFS™ FAT file system, smxFFS is not intended to work with media other than board-resident NAND flash. It does not support media such as SD or Compact Flash cards. Also, its file structure is not DOS- or Windows-compatible and it does not support subdirectories. smxFFS takes advantage of knowing that the media is NAND flash. To support other media, smxFS should be used. For simple logging to NAND or NOR flash, smxFLog is recommended.
Operation
smxFFS assumes a linear address space for the flash storage media. It also assumes that the media can only be accessed by sector (e.g. 512 bytes at a time). The structure of the flash address space is as follows:
- Reserved Area is divided into 2 parts: an area used by smxNAND and a user area that can store a boot sector or other data.
- File System Signature Area stores a string to identify the flash file system. It is located at the beginning of the next flash block following the reserved area.
- File Control Block (FCB) Area acts like a root directory. Each FCB represents one file and contains the following information: status, file name, file extension, first cluster index, and file length. FCB area size depends upon how many files may be stored on the flash. Each FCB requires 20 bytes and the FCB area must be a multiple of the flash block size. For a 16 KB block size, up to 400 files can be handled.
- File Allocation Table (FAT) Area contains the FAT nodes. Each node represents one data cluster. 16-bit and 32-bit FAT nodes are supported. FAT size can be minimized by increasing the cluster size. The FAT must also be a multiple of the flash block size
- File Data Area stores the file data. It is aligned on a flash block boundary.
Features
- Supports moderate to large flash memories.
- Standard C library file API without subdirectory support.
- Power fail-safe.
- Multitasking support.
- Optimized for SMX® RTOS.
- Easily portable or runs standalone.
- Can coexist with smxFS and smxFLog.
- Source code included.
- PC emulator included.
Prices start at $5,000