Products       Learn       Buy       Support       Company
  Home > Products > File I/O

File I/O Products

Micro Digital provides a variety of file systems and media drivers to meet the needs of most embedded systems. Our file systems may be used together and are interoperable with other Micro Digital products such as USB and TCP/IP stacks. Out-of-the-box support is provided when used with SMX®, or these file systems may be used standalone or with other RTOSs. smxFS supports ARM, Cortex, ColdFire, and many other processor architectures

FAT File System

smxFS is a general purpose FAT file system, which supports both fixed and removable media. It uses the Windows-compatible FAT file format so that removable media can be exchanged with PCs and other Windows-compatible file systems. smxFS is designed for use in embedded systems. It offers small code and data footprints and good performance. It uses the standard C library file API (i.e. fopen(), fread(), etc.) that is familiar to most C programmers. A smaller Lite version is available for lower cost with less functionality. API functions are reentrant so that smxFS is safe for multitasking. Drivers are available for the media most commonly used in modern embedded systems:

  • USB Mass Storage — USB hard drives and USB thumb drives (or memory sticks)
  • SD/MMC — SPI or MMC interface, including SDHC
  • CompactFlash
  • ATA/IDE Hard Drive
  • NAND Flash Disk — SLC and MLC
  • NOR Flash Disk
  • Serial NOR Flash Disk
  • RAM Disk
  • DiskOnChip

New drivers are easily added by implementing seven interface functions and registering the driver with smxFS. No changes to smxFS are required. Additional media drivers are being developed—contact us for the latest information.

Flash File System

smxFFS is a simple, power fail-safe file system for NAND and NOR flash chips. It supports very large flash devices, yet has a small memory footprint. Like smxFS, it uses the standard C library file API (i.e. fopen(), fread(), etc.) that is familiar to most C programmers. These functions are reentrant so that smxFFS is safe for multitasking. Unlike the smxFS FAT file system, smxFFS is not intended to work with media other than board-resident flash. It uses a proprietary file structure that works well for flash devices (not Windows-compatible). This reduces media wear and gives better performance.

Flash Logger

smxFLog is a simple flash logger that provides high-speed, reliable data logging to NAND or NOR flash memory. It has extremely small code and data footprints. Logging data is a common operation in embedded systems, and warrants a good solution. It is a sequential operation consisting of appending data to a file. This is not efficient in FAT file systems that write to flash media.

To learn more about SMX File System products see:
  1. smxFS Datasheet
  2. smxFFS Datasheet
  3. smxFLog Datasheet
  4. smxNAND Datasheet
  5. smxNOR Datasheet
  6. smxUSBH Datasheet

Also see helpful whitepapers at

Register for more information and to be contacted by a product expert.

  Register for More Info
  Get SecureSMX News
What is FAT?

The FAT (File Allocation Table) is a structure on a disk that maps the blocks of disk space occupied by individual files on that disk. These blocks are called clusters. A cluster is a group of sectors; a sector is the smallest addressable unit of a disk. Sectors are typically 512 bytes in size. The number of sectors per cluster is constant for the entire disk. Files typically consist of many clusters. FAT entries are in the same order as physical clusters on the disk and correspond one for one with them. Each FAT entry points to the next FAT entry for the same file or directory (Note: directories are treated as files.) A special value indicates the end of the file. The size of FAT entries dictates the size of the FAT and the maximum size of the disk.
Flash Disk Essentials

Making a flash chip look like a disk drive is not easy. Unlike magnetic media, flash cannot be overwritten, without first being erased. Erasing is done block by block. Blocks are usually quite large (e.g. 128 KBytes for 1 Gbit chips). Hence, to overwrite an area in the file system requires moving it to a free (erased) block. This necessitates a mapping system from logical address space to physical address space — an operation done by the flash driver. NAND flash, which is most commonly used for flash disks, has many other problems: (1) bad blocks, which are unusable, (2) high error rates, which require error correction codes, (3) wear out, which necessitates maintaining wear counters and moving files around, and other problems. The need to erase a block can occur during a write operation, causing the write operation to be unexpectedly slow. This is characteristic of all flash devices — SD cards, USB thumb drives, resident flash, etc.
Home       Sitemap       Contact