Use the EcFAT file system on embedded systems to speed up development and increase quality when you store data in Flash memories, SD cards and USB sticks.
EcFAT is well-tested, fail-safe and reads/writes the industry standard FAT file system.
- ANSI C Source package with robust and well-tested code
- All the features you will need
- Extensive documentation
- Personal technical support
- Clear examples
- Flexible licensing
Scroll down to read all features and to buy EcFAT. We have flexible licensing options to suit all needs.
Contact us for questions and licensing options
Robust and well-tested
For each change to the EcFAT source code and commit to our source repository a big batch of unit tests run automatically.
Currently 1260 tests are run with 71,000,000 checks that the code is functioning as intended. Tests are constantly added when we find bugs or add features.
Documentation online, as PDF, in header (.h) files and in source (.c) files
The documentation is available in all places where it might be useful.
Documentation is available online without login here and as a PDF file for printing.
Documentation is also available in the source before function declarations in the header files and before the function implementations in the source files.
Technical support via phone and e-mail
6 months of maintenance agreement is included with your purchase which gives you support and free upgrades during this time.
Once your maintenance time is up, you are free to renew it for 20% of the cost of a new license.
Platform-independent C source
EcFAT is delivered as platform independent C source so it is easy to integrate with the rest of your source.
Easy to use
The API is designed to be simple to use. Have a look at the documentation to get a sense of how it works.
Format file systems optimized for flash memories
EcFAT can format file systems that are optimized for flash memories. Format adjusts to the flash page size to minimize unnecessary page erases.
EcSD (SD driver) included
EcSD is included in the EcFAT package with examples of how to read and write SD cards.
EcFAT Explorer for Windows
EcFAT Explorer lets you connect to your embedded system to read and write files.
It is very useful when you have a file system on a device that is hard to access (like a flash memory) and you need to debug the system.
EcFAT Boot included
EcFAT Boot is a smaller version of EcFAT intended to be used in bootloaders.
EcFAT Boot is designed to fit in a small bootloader. To reduce size it only supports short filenames and reading of files.
Several samples are included to get you started.
Static memory design
All EmbCode products use a static memory design. This means that there is no need for a dynamic memory handler and that there never are any runtime errors from memory exhaustion.
Open several files simultaneously
EcFAT supports opening as many files as you like simultaneously.
No extra buffers are needed for each open file, you just need to store the file handle which is around 40 bytes per file.
FAT12, FAT16 and FAT32 support
Full support for FAT12/16/32.
EcFAT Lite supports FAT12 only and is intended to be used in smaller systems where you store data in a flash chip.
Journaling support for fail-safe systems
Journaling protects the file system data structures and prevents them from being corrupted. Even if a write is interrupted by something like a power loss.
Wear leveling support for flash memories
Wear leveling spreads the writes to a flash chip evenly over the entire area. This extends the life time of the chip and lets you use flash chips without built in wear leveling.
Bad block management
Some large flash chips are delivered with some blocks being faulty. This is to reduce the cost and yield of the chips.
EcFAT handles the bad blocks and replaces/remaps them when necessary.
EcFAT supports TRIM which notifies the blockdriver that a sector is no longer in use.
This lets the block driver prepare for big writes by pre-erasing sectors. It also allows the block driver to stop storing sectors that are no longer in use.
NAND/NOR Flash memory support
EcFAT uses wear-leveling, journaling, bad block management and TRIM to support NAND and NOR flash. Even if they are delivered with faulty blocks.
Mount several file systems
You may mount up to 26 file systems at the same time.
Long file name (VFAT) support
EcFAT supports long file names (also known as VFAT) but you can disable it to save space.
Built-in RAM cache
EcFAT has a built-in cache with a configurable size.
This vastly improves the speed of the file system but you can also minimize it to save RAM.
EcFAT supports creating and using partitions. You can mount file systems from different partitions and you can initialize partition tables and create your own partitions.
You may even create several file systems on different partitions and use them simultaneously if you want to separate your data.
Multi-threading is fully supported so EcFAT will serialize the access to the block driver automatically for you.
EcFAT supports multiple threads. Example configurations are included for FreeRTOS.
Mount several file systems simultaneously
EcFAT allows you to mount several file systems simultaneously. This means that you can access an SD card while also having an internal flash file system.
EcFAT is available in two different version.
Contains all features of EcFAT.
EcSD Lite is included.
EcFAT Lite only supports FAT12 so will only support discs of limited sizes.
EcSD Lite is included.
EcFAT/EcFAT Lite can be licensed in several different ways:
For developer licenses you buy 1 license per developer. That developer is then free to use EcFAT in any number of projects in any volume. It is similar to buying say a compiler.
If the developer quits or changes assignment you may transfer the license.
One of the benefits of this is the developer is free to use EcFAT on other projects as well as part of his/hers personal toolkit.
The product license is for one product that your organization sells. You need to supply a name and a description for it. Any number of developers may work on the product and you may sell it in any volume.
Product line license
The product license is for one product line that your organization sells. You need to supply a name and a description for it. The general function of all the products in the product line must be the same. Any number of developers may work on the product and you may sell it in any volume.
For a company license, any number of developers may use EcFAT for any number of products in any volume.
Below are prices for a 1-developer license. Contact us for questions and licensing options
|EFSD||EcFAT Standard 3.0 (FAT12, FAT16 and FAT32 support)||€1440|
|EFLD||EcFAT Lite 3.0 (FAT12 support only)||€480|