Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

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.

Note:

  • 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.
 
 


Features
File System Support
ANCI C library API (fopen, fread, etc)yes
FAT12, FAT16, FAT32yes
Sub-folder supportyes
Long file name supportyes
File Tables in ROMyes
File system de-fragmentationyes
Media Support
ROMyes
RAMyes
Flashyes
SPI Flashyes
SD/MMC/SDHC Cards1-bit, 4-bit & SPI interfaces
Other Features
Time-Stampsyes
Simultaneous access to different mediayes
Multiple block read and write commandsyes
SD/MMC file cachingyes
Flash ROM device driver
(similar to ULINK Flash Driver)
yes
Multi-Threaded implementationyes
Memory card format
using optimal cluster size and alignment
yes
Memory card hot plugyes
Maximum Device Memory Size32GB

Performance
BoardDeviceCPU CoreCPU [MHz]Card InterfaceWrite [KB/s]Read [KB/s]
MCBSTM32ST
STM32
Cortex-M372.0SPI at
18MHz
711.1758.1
LM3S8962TI
LM3S8962
Cortex-M350.0SPI at
12.5MHz
537.8607.6
LM3S6965TI
LM3S6965
Cortex-M350.0SPI at
12.5MHz
539.2603.6
LM3S3768TI
LM3S3768
Cortex-M350.0SPI at
12.5MHz
539.5603.8
AT91SAM9260-EKAtmel AT91SAM9160ARM996.1SD4 at
25MHz
4785.05044.0
AT91SAM9261-EKAtmel AT91SAM9161ARM996.1SD4 at
25MHz
4790.65069.3
AT91SAM9G20-EKAtmel AT91SAM9G20ARM996.1SD4 at
25MHz
4899.55418.0
AT91SAM9RL-EKAtmel AT91SAM9RL64ARM996.1SD4 at
25MHz
4096.05211.2
MCB2460NXP LPC2468ARM748.0SD4 at
24MHz
4084.35525.9
MCB2360NXP LPC2368ARM748.0SD4 at
24MHz
3946.35330.6
MCB2140NXP LPC2148ARM760.0SPI at
7.5MHz
299.4313.4
MCBSTR9ST STR912ARM948.0SPI at
12MHz
355.2357.1
MCBSTR750ST STR750ARM760.0SPI at
15MHz
402.2416.1

Note

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

Memory Requirements
File System ComponentCode Size (KBytes)RAM Size (KBytes)
Stdio Library Core4.730.94
File System Core2.980.47
FAT File SystemCode Size (KBytes)RAM Size (KBytes)
FAT with LFN Support9.410.83
Memory Card Support1.340
STM32F2xx SDIO HW Driver0.850
LPC17xx SPI Driver0.360
NAND Support (FTL)8.540.34 + (2* page size)
STM32F2xx NAND Driver1.410
SAM3xx NAND Driver1.020
Embedded Flash File SystemCode Size (KBytes)RAM Size (KBytes)
Embedded Flash File System< 5.000.28
SST39x320x Flash HW Driver0.220.01
STR91x Flash HW Driver0.310

Note

  • 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)

Maximise