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.
Don't know much about this.
But KEIL does provide a commercial solution.
http://www.keil.com/support/man/docs/rlarm/rlarm_fs_flashfs.htm
There are also some open source solutions., but they might need more efforts to implement some low-level drivers (mostly for Flash device).
http://elm-chan.org/fsw_e.html www.ulrichradig.de/index.html
elm-chan.org/.../00index_e.html www.ulrichradig.de/.../ARM_MMC_SD.zip
I can't read German, so I don't know if the 2nd URL's software is free software.
Hello John;
The problem is that I need a Transaction-Safe FAT. This is a FAT File System implementation that bearns power fails.
en.wikipedia.org/.../Transaction-Safe_FAT_File_System
If anybody can help me...
As per the URL you provided: -> TFAT only can be implemented in a system using the extended FAT (exFAT) file system. -> Support for Transaction-Safe FAT File System (TFAT) (optionally WinCE activated function)
So, WinCE for ARM?
Sorry, but I don't understand...
(I don't know much about this.)
The URL you provided says that: -> TFAT (transaction-safe FAT) only can be implemented in a system using the extended FAT (exFAT) file system.
Though I don't know if the above statement is true. I know that exFAT (FAT64) is the newest filesystem design. And I heard exFAT is still under development. So, the robust solution can only be provided by Microsoft.
As per the URL:
en.wikipedia.org/.../ExFAT
Microsoft's embedded solution, Windows CE, optionally supports TFAT.
Since WinCE has an ARM edition. Then, the only possible solution will be WinCE for ARM. Otherwise you may need to implement the Transaction Safe feature on an existing FAT filesystem all by yourself.
I have founded some comercial solutions that implement this feature, but there are expensive. So, I'm trying to find an open source solution, if it is posible.
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.