Georg Ritter wrote:

...


do you write FAT filesystem or a custom format and is your code open
source?


At present there is no filesystem, it just writes 512 byte blocks, but
it skips the first one. If I need a fs, I I'll probably use romfs, found
on linux.

Hi,

I heard some rumours that M$ is going to change their attitude to the usage
of FAT. It seems they want to turn down everything/everyone that does not
pay for a licence in future.

I was loooking into the MMC part too, and therefore was looking for a suitable fs. It should be free and easier to write. But it should also be somehow read/write-able by various OSes. Did really find anything yet.

Greetzs,

    Georg

Be aware that FAT is an extremely poor format for MMC if you plan to do much writing. Compact flash cards have automagic wear leveling algorithms that prevent premature wearing of sectors. MMC has no such facility. Premature failure areas are where a directory is stored and the FAT table itself. If you create a single file, and plan to extend it to 32MB, and we assume 4K clusters, you'll rewrite the FAT table a minimum of 256 times, plus additional few times if you create a subdirectory for where your file exists, etc. This quickly adds up if you're doing things like collecting vehicle performance data and offloading it every day. After 40 days, you've done over 10,000 writes. And if I recall correctly, unlike compact flash cards, MMC cards don't report write errors, so the only way you'll know you've failed to do a read verify after each write. Which just cut your performance in half, and likely required that you have space for a second 512 byte (so as not to wipe out the original data you're writing).

FAT works great (for small and fully qualified values of great) for R/O file systems. It's certainly easier to manage than ext2, reiser, or any other number of systems. And it can be written and read easily by any MMC equipped PC. But for devices that have finite lifetimes, such as flash and EEPROM, it's a poor choice, unless you implement the wear leveling algorithms yourself.

It's along these same lines while you'll read that you should never use a compact flash card or MMC for /tmp on a Linux system ("Why would you?", you might think. Think embedded systems).

   --jc

Reply via email to