Skip to main content
  • Products
  • Software evaluation
  • Downloads
  • Free utilities
  • Purchase
  • Silicon Vendors
  • Support
  • About us
  • Blog
  • Forum
  • Search
  • Jobs
  • Newsletter
  • Blog
  • Contact
  • Shop
  • emFile
  • Software Structure

    Software structure

    emFile is organized in separate layers for maximum configuration flexibility. The layers have clear and simple interfaces that allow easy extending of the file system functionality.

    Contact us Downloads Documentation
    SEGGER emFile
    1. 1.API Layer
    2. 2.File System Layer
    3. 3.Storage Layer
    4. 4.Driver Layer
    5. 5.Hardware Layer

    How emFile is organized

    A flowchart illustrating the layers of a file system architecture. It includes the emFile API layer at the top, connecting to file system and storage layer APIs. The structure leads down to the hardware layer, highlighting components like device drivers and different storage types.

    API Layer

    The API Layer is the interface between emFile and the user application. It is subdivided in two parts, Storage API and File System API. The File System API contains file functions in ANSI C stdio style, such as FS_FOpen(), FS_FWrite() etc. The API Layer transfers these calls to the File System Layer. Currently the FAT file system or an optional file system, called EFS, are available for emFile. Right now they cannot be used simultaneously. The Storage API contains the functions which are required to initialize and access a storage medium. The Storage API allows sector read and write operations. The API Layer transfers these calls to the Storage Layer. The Storage API is optimized for applications which do not require file system functionality like file and directory handling. A typical application which uses the Storage API could be a USB mass storage device, where data has to be stored on a medium, but all file system functionality is handled by the host PC.

    File System Layer

    The file system layer translates file operations to logical block (sector) operations. After such a translation, the file system calls the logical block layer and specifies the corresponding device driver for a device.

    Storage Layer

    The main purpose of the Storage Layer is to synchronize accesses to a device driver. It furthermore provides a simple interface for the File System API. The Storage Layer calls a device driver to perform a block operation. It also contains the cache mechanism.

    Driver Layer

    Device drivers are low-level routines that are used to access sectors of the device and to check status. It is hardware independent but depends on the storage medium. emFile supports difference type of devices. For self-managed devices such as SD-Cards or eMMC devices, emFile provides a device driver. Bare memory devices such as NAND and NOR flash memory are supported via complete flash translation layers, that manage error correction, wear levelling and more.

    Hardware Layer

    These are the low level routines to access your hardware. These routines simply read and store fixed length sectors. The structure of the device driver is simple in order to allow easy integration of your own hardware.

    • User manual
    • Online documentation
    • List of downloads
    • Download for evaluation
    • Release notes
    • Update notification
    • Pricing
    • Support
    • Silicon vendor resources

    Headquarters

    SEGGER Microcontroller GmbH

    Ecolab-Allee 5
    40789 Monheim am Rhein, Germany
    info@segger.com
    Tel.: +49-2173-99312-0
    Fax: +49-2173-99312-28

    Locations

    USA: SEGGER Microcontroller Systems LLC

    Boston area
    101 Suffolk Lane
    Gardner, MA 01440, USA
    us-east@segger.com
    Tel.: +1-978-874-0299
    Fax: +1-978-874-0599

    Silicon Valley
    Milpitas, CA 95035, USA
    us-west@segger.com
    Tel.: +1-408-767-4068

    China: SEGGER Microcontroller China Co., Ltd.

    Room 218, Block A, Dahongqiaoguoji
    No. 133 Xiulian Road
    Minhang District, Shanghai 201199, China
    china@segger.com
    Tel.: +86-133-619-907-60

    ISO 9001
    ISO 27001
    First-class embedded software tools since 1992
    Designed and made in Germany
    • Imprint
    • Disclaimer
    • Code of Conduct
    • Privacy Policy
    © 2026 SEGGER - All rights reserved.