This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: IDE-Harddiskdriver for MCUs


>>>>> "joel" == joel  <joel@OARcorp.com> writes:

    joel> On Fri, 4 Jun 1999, Robert J. Brown wrote:

    >> I implemented a diskless filesystem last year for a project for
    >> a client.  I did not have to write persistent data to the
    >> filesystem -- only temporary data.  I also had the ability to
    >> pre-load constant files at system build time.  The application
    >> was an embedded webserver with CGI capability.  We talked about
    >> adding tha ability to write flash at runtime, but there are
    >> timing issues and interrupt latency problems when you do that,
    >> and we might have missed an interrupt her or there.  :-(

    joel> One of the RTEMS uses has used the TFTP client filesystem to
    joel> download a tar image of the initial filesystem contents for
    joel> his RTEMS based web server. :)

    joel> Your setup sounds very similar to the RTEMS In-Memory File
    joel> System (IMFS).  Our functionality goal for the IMFS may have
    joel> been a bit higher though since one of its primary purposes
    joel> was to fully exercise the filesystem infrastructure and
    joel> POSIX 1003.1b functionality.  So it supports regular files,
    joel> device files, directories (readdir family), symbolic links,
    joel> permissions, etc..  We needed a filesystem that was easy to
    joel> test the entire set of system calls with and IMFS was the
    joel> result.

My diskless filesystem was just as minimal as I could get and still
get the webserver to run.  I supported filenames with "/" in them like 
any other character instead of a nested directory structure.  It was
good enough to make the webserver work.  I only supported open for
read, open for write, delete, and filesize operations, as that was all 
I needed for the task at hand.

Because memory was tight (isn't it always?), I used a psuedo-sector
pool and allocated sectors as needed to grow the file size.  I kept
directory entries in their own seperate structure because it was
simpler that way.  Number-of-sectors and bytes-per-sector were
parameters that were tunable at build time, so once you knew the sizes 
of the canned files and the amount of free space, you could optimize
the space requirements pretty well.

    joel> The other filesystem at this point is a TFTP client where
    joel> /MNT_POINT/TFTP_SERVER/PATH_ON_TFTP_SERVER is the style of
    joel> the names in that filesystem namespace.

-- 
--------  "And there came a writing to him from Elijah"  [2Ch 21:12]  --------
R. J. Brown III  rj@elilabs.com http://www.elilabs.com/~rj  voice 847 543-4060
Elijah Laboratories Inc. 457 Signal Lane, Grayslake IL 60030  fax 847 543-4061
-----  M o d e l i n g   t h e   M e t h o d s   o f   t h e   M i n d  ------
_______________________________________________
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
_______________________________________________
To remove yourself from the crossgcc list, send
mail to crossgcc-request@cygnus.com with the
text 'unsubscribe' (without the quotes) in the
body of the message.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]