Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: Cheap SD Flash File System

2005-11-10 by rtstofer

--- In lpc2000@yahoogroups.com, "Joel Winarske" <joelw@i...> wrote:
>
> > > does somebody have some good documentations about FAT12/16/32? 
(And
> > > would share it?) ;-)
> > 
> > 
> > http://www.ntfs.com/fat-systems.htm
> 
> Also:
> 
> http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
> 
> 
> Joel
>

I just ported the FAT32 file system stuff from WinAVR to ARM.  I 
used both of the references above and, at the moment, I can read and 
follow the chains of files created by WinXP.  The files don't have 
to be defragged but, as a limitation, I only use the short file name.

Neither of those specs deals with the issue of creating a file.  Do 
you just go look for a deleted file and use all of its' allocation 
until you need more?  Since you only have the single directory 
entry, how do you grab allocation units away from other deleted 
files?  How do you find an empty allocation unit in the FAT?  How do 
you insure that you are building a proper short file name from a 
long one, and vice versa.  In FAT32, both are required and the 
directory entries must be contiguous.

There are HUGE holes in both of those docs.  So, for my MP3 player, 
I can only read files based on 8.3 names.  Not a good situation.

I really want a writable configuration file that will tell the 
player how to deal with serial commands, telnet commands and the 
hardware inputs/outputs.  At a minimum, I need to tie a file name to 
an input pin so an effect file will play if a sensor is tripped.  I 
would like to do the configuration interactively via serial or 
telnet but, as I can't open a file for writing, that isn't 
happening, yet...  It's on back burner until I get the ethernet 
stuff integrated with the CF and MP3 - maybe next week.

Richard

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.