Thread overview
Implement a file system for use in embedded systems
Aug 04, 2018
B Krishnan Iyer
Aug 05, 2018
Mike Parker
Aug 05, 2018
Mike Franklin
Aug 06, 2018
Jonathan Marler
Feb 14, 2019
kunal kapoor
August 04, 2018
Hello everyone, I am  Newbie here and I am interested in " Implement a FAT/FAT32/EXFAT file system for use in embedded systems" project which is part of SAOC. For past a year I have been working on embedded systems and invested past few months in developing drivers for Nucleo-F446RE which is ARM Cortex M4 based dev board.  I was successful in creating HAL layer for accessing GPIO pins and currently developing the driver for SPI.

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.

Thanks :)
August 05, 2018
On Saturday, 4 August 2018 at 18:24:28 UTC, B Krishnan Iyer wrote:
> Hello everyone, I am  Newbie here and I am interested in " Implement a FAT/FAT32/EXFAT file system for use in embedded systems" project which is part of SAOC. For past a year I have been working on embedded systems and invested past few months in developing drivers for Nucleo-F446RE which is ARM Cortex M4 based dev board.  I was successful in creating HAL layer for accessing GPIO pins and currently developing the driver for SPI.
>
> 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.
>
> Thanks :)

The projects listed on the Wiki page are simply suggestions. You can gather ideas here in the forums, study references provided in the Wiki entry, and do whatever research you need, but ultimately it's up to you to flesh out the details of the project and define your goals.

That said, this particular project idea was added to the wiki by Mike Franklin. Perhaps he can provide some more details. I'll ping him to make sure he sees this thread.
August 05, 2018
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


August 06, 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
February 14, 2019
On Saturday, 4 August 2018 at 18:24:28 UTC, B Krishnan Iyer wrote:
> Hello everyone, I am  Newbie here and I am interested in " Implement a FAT/FAT32/EXFAT file system for use in embedded systems" project which is part of SAOC. For past a year I have been working on embedded systems and invested past few months in developing drivers for Nucleo-F446RE which is ARM Cortex M4 based dev board.  I was successful in creating HAL layer for accessing GPIO pins and currently developing the driver for SPI.
>
> 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.
>
> Thanks :)

Hey B Krishnan Iyer, I am also new to this forum.