SafeFAT is an enhanced version of FAT. It has an identical API but uses a hybrid transaction and journaling system to ensure file system integrity in the event of unexpected reset or power loss. It provides the strongest possible assurance that all memory operations are performed correctly and that the system can recover coherently from unexpected events.
The problem with conventional FAT file systems is that they are not fail-safe and often experience difficulties when unexpected events such as reset or power loss occur. The system may become corrupt and this is not usually acceptable in an embedded environment. The fundamental problem is that to make a new entry in a FAT consistent, more than one area of the disk must be modified in a single, uninterrupted action. This is logically impossible to achieve.
Corrupt files can sometimes be corrected using checkdisk software but this normally requires user intervention and decision-making and valuable data is often lost. Product quality and performance can be seriously undermined by these problems, but the threat can be eliminated by using SafeFAT. For product designers who value or depend on the data stored in their embedded devices, a fail-safe system is strongly recommended.
To solve the problem, SafeFAT implements a system that combines journaling and transaction operations to provide the strongest possible assurance that all memory operations are performed correctly, and that the system can recover coherently from any unexpected system event. When used in a correctly designed system, SafeFAT guarantees that data is always consistent. HCC file systems are transaction-based but permit single file operation without reference to the rest of the system.
For all its fail-safe file systems HCC has created simulation environments designed to ensure the robustness of the system through random reset and system verification on restart. HCC develops test harnesses for each system, in which an external controller randomly interrupts power to the target system. In order to ensure integrity, these tests are run continuously for weeks using multiple hardware configurations.
- Conforms to the HCC Advanced Embedded Framework.
- Designed for integration with both RTOS and non-RTOS based systems.
- Code size ~31 KB.
- RAM usage >6 KB.
- ANSI ‘C’.
- AES 128 file encryption option.
- Long filenames.
- Unicode 16.
- Multiple open files.
- Multiple users of open files.
- Multiple volumes.
- Multi-sector read/write.
- Variable sector sizes.
- Partition handling.
- Handles media errors.
- Test suite.
- Cache options give improved performance.
- Zero copy.
- Common API (CAPI) support.
- Secure delete option (with special driver support).
- Standard drivers available for SD, SDHC, SDXC, MMC, SafeFTL, USB-MST, HDD and RAM.