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)

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

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

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_flex

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.

emfile-structure

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.

raid1

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.

raid5

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.

flash-media-usb

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.

image_creator_production

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.