Implement a file system for use in embedded systems

Jonathan Marler johnnymarler at gmail.com
Mon Aug 6 01:49:37 UTC 2018


On Sunday, 5 August 2018 at 05:53:20 UTC, Mike Franklin wrote:
> On Saturday, 4 August 2018 at 18:24:28 UTC, B Krishnan Iyer 
> wrote:
>
>> I had some questions regarding the project and also needed 
>> some pointers to get started with the project. Also, more it 
>> would be great if more description of the project statement 
>> can be provided.
>
> The idea is to create something that can replace FatFs 
> (http://www.elm-chan.org/fsw/ff/00index_e.html) for use in 
> embedded systems just like you mentioned (ARM Cortex-M 
> microcontrollers).
>
> I don't think you necessarily need to be proficient in embedded 
> systems to write such a project, as the file system could be 
> persisted to anything from an SD Card, RAM, or a simple file.  
> But understanding the limitations of ARM Cortex-M embedded 
> systems will give one perspective that will add in making their 
> design trade-offs.
>
> I can think of a few things that would probably help anyone 
> attempting to tackle such a project
>
> 1.  Get familiar with FatFs by porting it to an existing HAL 
> and successfully read/write from/to an storage medium like an 
> SD card.
> 2.  Buy a book on the FAT file system.  A quick search yielded 
> this 
> (https://www.amazon.com/ExFAT-FAT-File-Systems-Internals/dp/1539928977/ref=sr_1_fkmr2_3?s=books&ie=UTF8&qid=1533447939&sr=1-3-fkmr2&keywords=flat+file+system), but I have no idea if it's any good.
> 3.  Study the FatFs source code.
> 4.  Start coding and progressively work through your ideas, 
> incrementally learning from your successes and failures.
> 5.  Begin asking questions
>
> Mike

A bit of history...the FAT filesystem was a Microsoft proprietary 
filesystem until UEFI came along.  Microsoft suggested UEFI use 
FAT as one of its filesystem formats, but UEFI required that 
Microsoft create/release a specification for it in order for them 
to accept it.  Surprisingly, Microsoft agreed.  I believe this 
document is the result of that:

https://staff.washington.edu/dittrich/misc/fatgen103.pdf


More information about the Digitalmars-d mailing list