SafeFLASH was designed to overcome the deficiencies of using a FAT file system with an embedded system. Execution of file operations and the use of flash is significantly more efficient than with a FAT-compliant file system. It is highly optimized for using integrated flash up to around 1GB. It can be used with all NOR and NAND flash or any media that can simulate a block-structured array. SafeFLASH supports dynamic and static wear leveling and provides a highly efficient solution for products in which data integrity is critical. It is provided with the specification required to make it completely fail-safe and reliable.

The SafeFLASH file system driver is highly portable without compromising excellent performance. In short:

  • SafeFLASH is a package of source code designed for flash file system development in embedded systems.
  • SafeFLASH is a high performance truly fail-safe file system that can be used with all NOR and NAND flash, and any media that can simulate a block-structured array.
  • SafeFLASH supports dynamic and static wear leveling and provides a highly efficient solution for products in which data integrity is critical.
Features
  • Conforms to the HCC Advanced Embedded Framework.
  • Designed for integration with both RTOS and non-RTOS based systems.
  • Code size just 17-20 KB.
  • RAM usage depends on the configuration and flash type. HCC provides a tool for calculating this number.
  • Fail-safe.
  • ANSI ‘C’.
  • Long filenames.
  • Unicode 16 names.
  • Multiple open files.
  • Multiple users of open files.
  • Multiple volumes.
  • Handles media errors.
  • CRC on files (this is optional).
  • Test suite.
  • High relative performance.
  • Cache option.
  • Zero copy.
  • Static wear leveling.
  • Dynamic wear leveling.
  • Reentrant.
  • Common API (CAPI) support.
  • Secure delete option  (NOR flash only).

NOR Flash Support

  • Supports all NOR flash types.
  • Easy porting for all known device types.
  • Sample driver available with porting description.

Adesto® DataFlash Support

  • Supports all devices.
  • Manages the 10K writes/sector limitation.
  • Fail-safe implementation of the DataFlash interface.

NAND Flash Support

  • Supports all NAND flash types.
  • Error Correction Codes (ECC) algorithm.
  • Easy porting for all known device types.
  • Sample driver with porting description.
  • MCU/NAND controller support.

Note: SafeFLASH does not support removable media and is not recommended for arrays of flash greater than 4GB. For removable media and very large arrays, we recommend using the HCC FAT or SafeFAT system, with HCC SafeFTL where NAND flash is required.

Architecture
SafeFlash File System architecture

In this diagram:

  • The drivers are the basic device architecture includes a high level driver for each general media type. These drivers share some common properties. The driver handles issues of FAT maintenance, wear leveling, and so on.
  • A physical device handler below the driver (except for the RAM driver) performs the translation between the driver and the physical flash hardware.