Flash File System

Flash File System

MDK-Professional includes a Flash File System that allows your embedded applications to create, save, read, and modify files in standard storage devices such as ROM, RAM, Flash ROM, and SD/MMC/SDHC Memory Cards.

Product Highlights

  • Standard ANSI C File I/O application interface
  • NOR and NAND Flash Support
  • RAM, ROM, and SD/MMC/SDHC Memory Cards
  • Windows compatible FAT12, FAT16, and FAT32 formats including sub-folders and long file names)
  • SD/MMC card file-caching delivers high-speed read/write access
  • Reentrant and thread-safe operation
  • Simultaneous access to multiple storage devices
  • Dialog-based setup using µVision Configuration Wizard
  • On-chip Flash and external memory interfaces supported for numerous ARM-based devices
  • Full documentation and SD/MMC/SDHC example projects are provided
  • See the full list of Flash File System features

Many ARM-based microcontrollers have a practical requirement for a standard file system. With the Flash File System you can implement new features in embedded applications such as data logging, storing program state during standby modes, or storing firmware upgrades.


  • The Flash File System is provided in binary form as part of MDK-Professional. It is not included with other MDK-ARM Editions.
  • Implementation of file systems with long file name support in commercial products requires a license from Microsoft.

File System Support
ANCI C library API (fopen, fread, etc) yes
FAT12, FAT16, FAT32 yes
Sub-folder support yes
Long file name support yes
File Tables in ROM yes
File system de-fragmentation yes
Media Support
ROM yes
RAM yes
Flash yes
SPI Flash yes
SD/MMC/SDHC Cards 1-bit, 4-bit & SPI interfaces
Other Features
Time-Stamps yes
Simultaneous access to different media yes
Multiple block read and write commands yes
SD/MMC file caching yes
Flash ROM device driver
(similar to ULINK Flash Driver)
Multi-Threaded implementation yes
Memory card format
using optimal cluster size and alignment
Memory card hot plug yes
Maximum Device Memory Size 32GB

Board Device CPU Core CPU [MHz] Card Interface Write [KB/s] Read [KB/s]
Cortex-M3 72.0 SPI at
711.1 758.1
LM3S8962 TI
Cortex-M3 50.0 SPI at
537.8 607.6
LM3S6965 TI
Cortex-M3 50.0 SPI at
539.2 603.6
LM3S3768 TI
Cortex-M3 50.0 SPI at
539.5 603.8
AT91SAM9260-EK Atmel AT91SAM9160 ARM9 96.1 SD4 at
4785.0 5044.0
AT91SAM9261-EK Atmel AT91SAM9161 ARM9 96.1 SD4 at
4790.6 5069.3
AT91SAM9G20-EK Atmel AT91SAM9G20 ARM9 96.1 SD4 at
4899.5 5418.0
AT91SAM9RL-EK Atmel AT91SAM9RL64 ARM9 96.1 SD4 at
4096.0 5211.2
MCB2460 NXP LPC2468 ARM7 48.0 SD4 at
4084.3 5525.9
MCB2360 NXP LPC2368 ARM7 48.0 SD4 at
3946.3 5330.6
MCB2140 NXP LPC2148 ARM7 60.0 SPI at
299.4 313.4
MCBSTR9 ST STR912 ARM9 48.0 SPI at
355.2 357.1
MCBSTR750 ST STR750 ARM7 60.0 SPI at
402.2 416.1


  • Figures shown were achieved working with 4MB of data in 4KB blocks
  • Further details are available here.

Memory Requirements
File System Component Code Size (KBytes) RAM Size (KBytes)
Stdio Library Core 4.73 0.94
File System Core 2.98 0.47
FAT File System Code Size (KBytes) RAM Size (KBytes)
FAT with LFN Support 9.41 0.83
Memory Card Support 1.34 0
STM32F2xx SDIO HW Driver 0.85 0
LPC17xx SPI Driver 0.36 0
NAND Support (FTL) 8.54 0.34 + (2* page size)
STM32F2xx NAND Driver 1.41 0
SAM3xx NAND Driver 1.02 0
Embedded Flash File System Code Size (KBytes) RAM Size (KBytes)
Embedded Flash File System < 5.00 0.28
SST39x320x Flash HW Driver 0.22 0.01
STR91x Flash HW Driver 0.31 0


  • All example figures are based on Cortex-M3
  • All values are minimum requirements with minimum data buffers and no application code
  • typical NAND page sizes - Small (512B + 16B), Large (2,048B + 64B)



We use cookies to give you the best experience on our website. By continuing to use our site you consent to our cookies.

Change Settings

Find out more about the cookies we set