From: larwe on
Google Groups is being recalcitrant these past couple of days, so I
have no idea if the world will see this, but I've just released free C
source to my embedded FAT filesystem. I've tested this code on a
variety of platforms, including ARM, AVR and MSP430.

I know there are several such filesystems in the world, but this one
meets my particular requirements for functionality vs. footprint - it
may be useful for someone else too.

<http://www.zws.com/products/dosfs/>

This code should be considered beta; I would appreciate feedback as to
bugs.

Here's the abstract:

DOSFS is a FAT-compatible filesystem intended for fairly low-end
embedded applications. It is not the leanest possible implementation
(the leanest FAT implementations operate in << 512 bytes of RAM, with
heavy restrictions). This code strikes a good balance between size and
functionality, with an emphasis on RAM footprint.

Intended target systems would be in the ballpark of 1K RAM, 4K ROM or
more.

Features:

Supports FAT12, FAT16 and FAT32 volumes
Supports storage devices up to 2048Gbytes in size (LBA32)
Supports devices with or without MBRs (hard disks vs. floppy disks or
ZIP drives formatted as "big floppies")
Supports multiple partitions on disks with MBRs
Supports subdirectories
Can be operated with a single global 512-byte sector buffer
Fully reentrant code (assuming the underlying physical device driver is
reentrant and global sector buffers are not used). There are no global
variables in the filesystem
Does not perform any memory allocation
Partial support for random-access files

From: Markus Zingg on
>Supports FAT12, FAT16 and FAT32 volumes
>Supports storage devices up to 2048Gbytes in size (LBA32)

Do you also support long filenames?

Markus
From: Jonathan Kirwan on
On Mon, 09 Jan 2006 11:44:03 +0100, Markus Zingg <m.zingg(a)nct.ch>
wrote:

>>Supports FAT12, FAT16 and FAT32 volumes
>>Supports storage devices up to 2048Gbytes in size (LBA32)
>
>Do you also support long filenames?

If you'd grabbed the README.TXT in the extremely small and easily
gzip'd and tar'd distribution, you'd have read:

VFAT long filenames are not supported. There is a certain
amount of patent controversy about them, but more importantly
they don't really belong in the scope of a "minimalist embedded
filesystem".

Somewhat limited (non-unicode) support, if my poor memory of the
16-bit FAT case is any guide, isn't that hard to add.

Jon
From: Markus Zingg on
>If you'd grabbed the README.TXT in the extremely small and easily
>gzip'd and tar'd distribution, you'd have read:

I implemented FAT12/16/32 quite similarly ~3 years ago and also left
out long filename support for similar reasons. The library would have
rised my interest if it were to support long filenames because I
thought it would be tuff to implement this with the resources
specified and also because I wondered how he would get away with the
licensing issue.

Btw, Microsoft made FAT32 (and particularlly long filename support)
available under a license. From what I understood the license is
afordable for small projects but still a license... The intention -
again as I understood it - are to:

a) make money from the big guys (cameras, USB devices etc.pp sold in
masses)
b) guarantee that long filename support is implemented propperly by
leaving a door open for small/simple not mainstram business
applications of it.

Markus

From: larwe on

Markus Zingg wrote:

> Btw, Microsoft made FAT32 (and particularlly long filename support)
> available under a license. From what I understood the license is
> afordable for small projects but still a license... The intention -

The patents on which that was based were invalidated by the USPTO.

 |  Next  |  Last
Pages: 1 2 3 4 5
Prev: Sed1335 with LPC2294
Next: SD Card - boot sector