File System

A complete file system software stack providing support for
a variety of media through a uniform, easy-to-use programming interface.
Allows for interoperability, fail-safety and high performance, all at once.

Return to the Micrium OS Overview


Interoperable: Micrium OS File System implements the ubiquitous FAT12/16/32 file system allowing for unrivaled data sharing possibilities. Includes long file name support as well as UTF-8 character encoding.

Reliable: Micrium's journaling module guarantees that the file system internal state will remain consistent in the case of untimely power failures.

Small footprint: With a minimal requirement of one buffer, Micrium OS File System can run with as little as 1kB of available RAM.

Flash memory support: Micrium OS File System provides support for NOR and NAND flash memory through a highly configurable Flash Translation Layer (FTL). In addition to providing a uniform block device abstraction on top of heterogeneous flash technologies, the FTL optimizes flash memory lifetime thanks to its built-in wear leveling mechanisms and by providing a software ECC (Error Correction Code) or by taking advantage of some hardware ECC.

Removable media support: Removable media support: Micrium OS File System provides support for SD cards, Multimedia Memory Cards (MMC) and MSC devices, including asynchronous insertion / removal notification to the application and stale files access protection.

Performance: Micrium OS File System offers high performance without sacrificing reliability. This is thanks to a sophisticated write-back caching mechanism that is journaling-compatible. Moreover, its advanced locking scheme ensures thread safety while allowing a high degree of concurrency.

Easy to use: Micrium OS File System offers unprecedented ease of use through both its native and POSIX compliant APIs.

Customizable: The memory footprint (both RAM and ROM) of Micrium OS File System can be adjusted at compile time based on the required features



Memory Footprint

ROM Minimal (block device only): 7kB
Typical: 65kB
RAM Minimal (bare-metal, file API and SD driver): 1kB
Typical: 5kB(bytes)

Key Specifications

Memory allocation Static and dynamic mode supported
File operations Read, write, truncate, rename, copy, query
POSIX compliant Yes
File buffers supported Yes
Supported file systems FAT12/16/32
Raw block device interface Yes
Concurrency Preemptive file read operations. Preemptive file write operations on different volumes
Fail safe Yes (with optional journaling module)
Write back caching Yes (can be used along with journaling)
Partition support Yes (DOS-style partitions)
Unicode support Yes
Storage media technology support NAND, NOR, SD (card mode + SPI), SCSI, RAM
Bare metal support Yes
Shell support Yes

Storage Device Support

NAND SLC and MLC memories with a parallel bus. Both small page and large page devices are supported. Software ECC (Error Correction Code) are provided for 1-bit correction per codeword using Hamming codes. Hardware ECC is supported on some Micron flash memory devices.
NOR Support for a wide variety of serial (both SPI and Quad SPI) and parallel NOR flash devices.
SCSI All MSC compatible USB drives.
SD/MMC SD, SDHC and SDXC cards, as well as MMC cards and e-MMC chips. Card mode and SPI implementations are available.

Memory Controller Drivers

Micium OS File Systems provides memory controller drivers for :

  • NAND
  • NOR serial Quad SPI
  • SD card mode

Other peripheral controller drivers needed by NOR SPI, SD SPI mode and SCSI are provided by other Micrium OS stacks:

  • NOR SPI: SPI drivers are provided by Micrium OS IO module
  • SD SPI: SPI drivers are provided by Micrium OS IO module
  • SCSI: USB host drivers are provided by Micrium OS USB Host stack

The tables below show the list of hardware architectures from our silicon partners for which we provide controller support. If you don’t see the driver you are looking for please contact our sales department. We can give you the latest information on new driver development.

Memory Type Manufacturer Driver Device Family Example
NAND NXP NFC Kinetis K70
NAND Silicon Labs EBI EFM32 Giant Gecko
NOR STMicroelectonics STM32 Quad SPI STM32F7 series
SD Card NXP SDHC Kinetis K70
SD Card STMicroelectonics SDMMC STM32F7 series
SCSI Various Various Refer to the USB Host page.

You can consult the File System Drivers page for more details about the drivers. For SPI drivers, you can consult the SPI Drivers page. 


Licensing Packages That Meet Your Needs

Check out our licensing page for more information.


Micrium's user documentation for Micrium OS is available online on the Micrium documentation site.

Contact us today and start working with µC/OS