Our exFAT File System is compliant with Microsoft’s exFAT Specification and we are an official licensee of Microsoft for exFAT solutions. We have leveraged our 30+ years of experience with file systems to create a small and efficient implementation that is ideally suited to embedded applications.
Why Use exFAT?
By using our Embedded solution for the Microsoft exFAT File System, you can avoid the inherent limitations of the FAT32 specification. exFAT support file sizes and storage media limits that greatly exceed the capacity of any storage media in existence today. To summarize, exFAT supports:
- Storage media of any size, up to 256 TB
- Max file size: 128 PiB (128 x 250 bytes)
- Long file names: up to 255 characters long, using the UTF-16 character set
- Multi-Language support using the UTF-16 character set
- Transactional exFAT (TexFAT)
Features of our exFAT File System
Designed to the exFAT specification. This is a not a “reverse-engineered” implementation which may, or may not, conform to the exFAT specification. We worked with Microsoft to ensure you get an implementation that meets the specification and is Microsoft approved. This includes testing the implementation with Microsoft’s exFAT verification tools which are only available to Microsoft approved licensees.
Coded to rigorous standards. We use a coding standard that is based on the MISRA 2012 guidelines, and we run the code through rigorous checks to ensure compliance to those standards.
OS and device independent. This allows our exFAT implementation to be easily ported to your environment. Two files are required to port, one for device access (open, close, read block, write block), and one for OS access (memory alloc and free, mutex lock and unlock). We supply ports to popular OSes.
Optimizations for indexing and playing media files. Special features are available to allow media libraries to be optimally indexed and efficiently played. This is a critical feature for entertainment and automotive infotainment application.
Small foot print. Designed for smaller footprint applications, ideal for embedded applications.
Read only version available. A compile time option allows you to build a read only version of exFAT to further reduce code footprint and to ensure that the media is not written in read-only applications.
Feature rich API. Our feature rich API includes the standard file and directory access functions, as well as advanced search functions, media indexing functions, higher level file and directory operations, and diagnostic and utility functions.
Summary of Functions Provided
Volume Functions: These functions allow exFAT and TexFAT volumes to be created, mounted and administered. Includes: format, mount, unmount, get attributes, get/set volume name, cache flush, commit (TexFAT), and obtain bad cluster count.
Directory Functions: Manage hierarchical directories within the exFAT/TexFAT volume. Includes: create, open, close, rename, read, rewind, get parent, and get root.
File Functions: Manage files within directories. Includes: create, open, close, rename, touch, seek, read, write, copy, diff, flush, get size, get/set attributes, and get timestamps.
Search Functions: Search for files and directories within an exFAT volume. Search functions allow matching by filename, date, and file attributes. Search scope can be a directory, directory branch, or entire tree. Search can include a custom function to execute such as extracting metadata from files that match search criteria, which provides a quick and convenient way to create media indexes.
String Functions: These functions allow character and string conversion between ASCII, Unicode, and UTF-8.
Utility Functions: Various functions for obtaining and displaying statistics, error information, file, directory and volume structures, as well as allocating and freeing exFAT resources.
Transaction Support: TexFAT incorporates transaction-safe semantics to ensure file system integrity over power fail and catastrophic shutdown, and incorporates a commit, rollback mechanism. Supports both exFAT and TexFAT formatted media simultaneously.
Architecture
Below is the architecture diagram for our Embedded exFAT File System implementation.