emFile
A Fail-Safe File-System Software for Embedded Systems
Hardware-independent file system for reliable data storage in embedded systems
Supports multiple storage media including NAND/NOR Flash, SD Cards, eMMC, and USB drives
Compatible with FAT, exFAT, BigFat, and SEGGER's Embedded File System (EFS)
1. Key Features
2. Use Cases
3. A Fail-Safe File System
4. Flash-Memory Drivers
5. Additional Features
6. Image Creator for Production
7. Performance and Memory Footprint
8. Licensing

Key Features
emFile file-system library is the result of nearly three decades of continuous and ongoing development. It has been deployed across several hundred million devices worldwide, and it has proven itself in the field by delivering a range of powerful features that developers can rely on. Features include:

Fail-Safe Protection
emFile is a robust, fail-safe file system for embedded devices, meaning file-system corruption is nearly impossible, and data has maximum protection in the event of unexpected power loss or device corruption.

Data Security
emFile supports encryption for embedded file systems. Encryption is essential for securing data for individual files or even an entire storage device. It can be used with both EFS and FAT file systems as well as with supported storage devices, such as NAND, NOR, and SD/MMC cards.

Storage Flexibility
emFile's storage layer is a competent abstraction layer of physical memory structures. Complex operations are turned into reliable, simple memory-access operations. Supported memory structures include NAND and NOR flash, eMMC and SD, SDHC, SDXC cards. The storage layer can access these structures as RAID 1 and RAID 5.
Use Cases
emFile is suitable for a wide range of use cases in a variety of embedded systems, applications, and devices.
SEGGER Flasher Programmers
emFile's file-system library enables an embedded application or system to store data securely and reliably on any kind of storage device, such as a SEGGER Flasher
A Fail-Safe File System
emFile is organized in 5 layers (API, file-system, storage, device, and hardware layers) and is designed with security in mind. Therefore, all access operations are atomic, which helps ensure data consistency.
Even in the event of an interrupt due to failure, no storage or data will be left in an undefined state. Furthermore, RAID modes 1 and 5 can be supported to increase security at the storage layer, as well as journaling at the file-system layer.

Journaling
emFile's journaling is a additional component that sits above the file system and ensures that the file-system layer is fail-safe. Journaling means that a file system logs all changes to a journal before they are committed to the main file system, which ensures consistency in data recently written to the file system.
RAID 1
emFile offers maximum data integrity and reliability with RAID 1. It provides protection from storage device defects and failures and works on the storage layer with FAT and EFS file systems.

RAID 5
emFile offers maximum data integrity and reliability with RAID 5 with increased usable capacity. RAID 5 requires at least three strorage partitions to distribute date over several partitions. Additionally, it uses less data storage to achieve the same data security as RAID 1.

Flash-Memory Drivers
Flash-Media Drivers
SD, SDHC and MMC Device Drivers
emFile offers SD, SDHC and MMC flash-media drivers. SD and MMC drivers provide access to compatible storage devices (such as SD, SDHC, SDXC, MMC and MMC Plus cards, and e.MMC devices), which means applications benefit from high storage capacities at a low cost.
USB Sticks and Portable SSDs
SEGGER's emUSB-Host stack is required for support for USB-based media devices, such as USB SSDs, SD-card readers connected via USB, and USB memory sticks.

Additional Features
exFAT
SEGGER's exFAT implementation is a specialized version of Microsoft's exFAT file system that is designed for embedded systems
BigFAT
BigFAT allows storage of files sized 4GB or more on FAT-formatted drives with full FAT compatibility
Image Creator of Production
When a device is ready to ship, data and firmware is added the final product. With today's user interfaces and other data-intensive requirements, storage mediums often use file system to better manage different types of data. A common standard is the FAT file system.
To create a structure, memory devices are formatted, and data is added to file systems in the form of files. This may involve several time-consuming, repetitive steps that increase the likelihood of errors in production. To reduce production steps to a single write operation, a file system is created on a developer's system and converted to a binary that can be used with production programmers, such as SEGGER's Flasher series.

Performance and Memory Footprint
Test Results and Performance
emFile includes benchmark code with which users can measure performance on certain targets. The benchmark is a good approximation of the length of time required for common file-system operations
Resource Usage
emFile has been specifically designed for resource-constrained devices, and features can be retained for excluded from a build to tailor a system around design requirements and efficiency
Licensing
The software is available under various embedded software license models and can be delivered as source code. All commercial licenses are based on a one-time payment, are royalty-free, and include six months of updates and support for SEGGER's Embedded Experts.
There are no subscription fees, ensuring predictable and fixed costs over the entire product lifetime.
For non-commercial use, evaluation, and educational purposes, the software is provided under SEGGER's Friendly License.