www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Implement a file system for use in embedded systems

reply B Krishnan Iyer <krishnaniyer97 gmail.com> writes:
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 :)
Aug 04 2018
next sibling parent Mike Parker <aldacron gmail.com> writes:
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.
Aug 04 2018
prev sibling next sibling parent reply Mike Franklin <slavo5150 yahoo.com> writes:
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&keyword =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
Aug 04 2018
parent Jonathan Marler <johnnymarler gmail.com> writes:
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&keyword =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
Aug 05 2018
prev sibling parent kunal kapoor <zenitechdelhi gmail.com> writes:
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.
Feb 14