The THIN file system:

  • Is a FAT-compatible file system designed for embedded microcontrollers with limited system resources (restrictions on the available code space or available RAM).
  • Has a code size of from 4 to 12.5KB and requires from 1.5 to 2KB of RAM.
  • Provides a balance of speed against memory needed, with options that allow you to make performance trade-offs using available resources. This permits a full file system to be run on a low-cost microcontroller with limited resources.
  • Allows developers to attach PC-compatible media like SD cards or pen drives to their systems. It is compatible with media such as SD/MMC and Compact flash cards.
  • Can use any media driver that conforms to the HCC Media Driver Interface Specification. The system is limited to using only a single media driver at any time; before a second media driver can be used, the first volume must be deleted.
Features

The main features of the system are the following:

  • Conforms to the HCC Advanced Embedded Framework.
  • Designed for integration with both RTOS and non-RTOS based systems.
  • Code size 4 – 12.5 KB.
  • RAM usage 0.7 – 2 KB.
  • Uses ANSI ‘C’.
  • Reentrant.
  • Long filenames.
  • Multiple open files.
  • Test suite.
  • Zero copy.
  • FAT 12/16/32-compatible.
  • Common API (CAPI) support.

THIN has the following limitations compared to the full-featured FAT file system:

  • Support for single volume only.
  • No multi-sector read/write.
  • No cache options.
  • No multi-partition support.
  • No support for files opened simultaneously by multiple users.
  • Only supports 512 byte sector size.

One of the main limitations of using THIN is that performance is generally lower than FAT’s, but note that if FAT uses the same limited RAM allocation as a THIN system, the performance is similar. If there are no resource limitations, use of the FAT file system is recommended, because it provides flexibility for future development and performance improvement.

Architecture
THIN File System architecture