The exFAT (Extended File Allocation Table) file system is a proprietary Microsoft system. It is optimized for use with flash memory such as USB flash drives and SD cards. exFAT handles extremely large file sizes such as those used for audio and video and enables seamless file exchange between devices that use removable storage, whatever the device or operating system.

 

HCC Embedded is a licensed supplier of exFAT implementations and can provide a full technology and patent license solution for incorporation into customers’ devices. This means:

  • For those who already have a Microsoft license for exFAT, HCC can supply its exFAT software implementation.
  • For those who do not have a Microsoft license for exFAT, HCC can provide a Microsoft-approved license for exFAT and supply its exFAT software implementation.

In summary:

  • exFAT is a lightweight file system like FAT 32 (“lightweight” because it lacks NTFS’s extra features and their associated overheads).
  • exFAT supports greater file size and partition size limits than FAT 32.  FAT 32 has a 4GB maximum file size and 8TB maximum partition size, whereas you can store files that are larger than 4GB each on a flash drive or SD card formatted with exFAT.  exFAT’s maximum file size limit is 16EiB (Exbibyte).
  • exFAT is compatible with more devices than NTFS, making it the system to use when copying/sharing large files between OSes. The Mac OS X has only read-only support for NTFS, but offers full read/write support for exFAT. exFAT drives can also be accessed on Linux after installing the appropriate exFAT drivers. Note, of course, that much older devices may only support FAT 32 and not exFAT.
  • exFAT is designated by the Secure Digital (SD) Card Association as the standard file system for high-capacity, high-speed SDXC cards.
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.
  • Linux FUSE integration available.
  • Cache options for optimal performance.
  • Code size 35 KB.
  • RAM usage >16 KB.
  • ANSI ‘C’.
  • Unicode 16.
  • Multiple open files.
  • Multiple users of open files.
  • Multiple volumes.
  • Multi-sector read/write.
  • Variable sector sizes.
  • Partition handling.
  • Handles media errors.
  • Test suite.
  • Zero copy.
  • Re-entrant.
  • Boundary alignment offset for the FAT table.
  • Boundary alignment offset for the data region.
Architecture
exFAT File System architecture
exFAT for Linux FUSE

HCC's exFAT for Linux FUSE uses the standard FUSE (Filesystem in User Space) library. It is supplied as source code from which a Linux executable can be built. This executable can then be used to mount an exFAT drive whose files can be accessed like any other files in the system. The product supports FUSE library version 2.x and FUSE 3.x.