Hello;
We need a Transactional FAT File System for a Flash Memory and for a SD Card. Any of you know a comercial or free source implementation of this?
Thanks in advance.
Transactional FAT File System
I'm reasonably sure such a thing can't exist and still actually be the FAT File System. The problem being that the data structures of the FAT File System simply don't have the right layout to be handled transactionally. To append data to a file, you have to write into two or three separate places on the medium. That can't be done in a completely transaction-safe way by software.
Just FYI:
HCC (www.hcc-embedded.com/.../file_systems) has commercial FFS like SAFE-FAT and other proprietary power-fail safe FFSs, too. However, the libraries are not cheap and most likely you will need to implement your own driver for a particular bus/chip, though in my case for EFFS-TINY @ I2C @ FRAM/EEPROM / C16x it was not that hard (Keil's FFS does not support serial memory - se my post http://www.keil.com/forum/docs/thread11768.asp for more details).
-- Nikolay.
Thanks for all.
I know that this libraries are expensive. CMX has also this implementation. That is why I'm finding an open source implementation. But I canÂ't find a transactional implementation of FAT.
But why do you want a transactional implementation of FAT? The transactional fats we have seen are not compatible with the FAT12, FAT16, FAT32 that our current PC are using. exFAT may use a file allocation table, but is a completely new file system.
I'm not so sure you can make a FAT16 or FAT32 transaction safe and still have it be compatible with a PC.
So in the end, you should probably look at _any_ transactional file system, and then figure out a way how to transfer files between your device and the PC.
I'm a newbie in this kind of things. But, how do you "build" a FAT File System that can operate with power fails? That is to say, If you're writing a file in a Flash Memory or in a SD Card, the system must assure that if a power fail occurs in the middle of the writing proccess, data wonÂ't be corrupted.