FAT File Systems

HCC has five FAT file systems, each designed to achieve the best balance of performance and resource utilization in their targeted embedded configuration. These file systems share a common API to ensure portability, and can interface with any type of sector-based media.

  • FAT – optimized for use in embedded applications that need to attach FAT 12/16/32 compliant media to a product.
  • THIN – a FAT system for embedded MCUs with limited system resources.
  • SafeFAT – an enhanced version of FAT, ensures file system integrity in the event of unexpected reset or power loss.
  • exFAT – optimized for use with flash memory such as USB flash drives and SD cards.
  • SafeexFAT – an enhanced version of exFAT, ensures file system integrity in the event of unexpected reset or power loss.

Use this table to work out which product to use for your application. Click the header links for full details of each system.

  FAT   THIN   SafeFAT   exFAT   SafeexFAT  
Code Size1 ~24kB 4-12.5kB ~31KB 35 KB 47 KB
RAM >3KB 0.7->2KB >6KB >16 KB >18 KB
Fail Safety N N Y N Y
ANSI ‘C’ Y Y Y Y Y
Long Filename Support Y Y Y Y2 Y2
Unicode Y N Y Y Y
Multiple Open Files Y Y Y Y Y
Multiple Open File Users Y N Y Y Y
Multiple Volumes Y N Y Y Y
Multi-sector R/W Y N Y Y Y
Partition Handling Y N Y Y Y
Media Error Handling Y N Y Y Y
Test Suite Y Y Y Y Y
Relative Performance very high medium/low high very high very high
Cache Option Y N Y Y Y
Zero Copy Y Y Y Y Y
Re-entrant Y N Y Y Y
CAPI Support Y N Y N N
Secure Delete Option Y3 N Y3 N N
FAT-compatible Y Y Y N N
Notes:
  1. Approximate numbers based on Cortex-M3 at high optimization with long file names active. These can be reduced further by not using long file names.
  2. exFAT and SafeexFAT only have long filenames – there is no short filename concept.
  3. Needs special driver support.