Hello all,
I’m experimenting with RTEMS to see if it’s might be appropriate for an embedded application for my firm and am looking at the different file systems offered. The likely use case is a file system formatted on top of non-volatile MRAM, used for both short and long term storage.
I can find very little documentation on the RTEMS File System (RFS). Is it considered more reliable and/or more robust than a simple DOS FS?
Secondly, we were to use an RFS is there a utility to create an RFS offline, similar to the way one can use mkdosfs on a Linux box to create a DOS file system prior to use?
Best Regards,
I developed the RFS for the NASA MMS mission. Those satellites have Coldfire cores and a lot of RAM used as a disk via a DMA bus. The mission collects data into the RAM disk and then streams it back to earth when it can.
The RFS was reviewed as part of the flight software processes for the mission.
The hardware had a weird page size after ECC overheads were included and DOSFS could not deal with that size. The RFS could use all the memory.
The Coldfire cores are RAD hardened and the clock speeds are low. The RSF had to be efficient.
There is no offline tool currently to do that. Reach out to me directly and we can chat more about a tool.
Sorry for the late reply but I’ve been away for a couple of weeks and am just getting back to my experimenting with RTEMS.
Thanks so much for the response. This is exactly the kind of info I was after. Does the layer under the file system matter? I.e. does the use of either a ramdisk or nvdisk affect the way a file system performs?
For that matter, what is the advantage of using an nvdisk? If your storage medium is non-volatile and retains its information why is a special type of disk device needed?
Best Regards,
Brian
The RFS uses libblock
to provide caching and media access. The libblock
code provides a block based interface you wire to your hardware with a driver.
The nvdisk
driver was developed when the RFS was developed and it provides a simple CRC based disk. You could use it as is or use it as the starting point of a new libblock
driver the RFS can use. The MMS project has a custom driver that handles the ECC memory access via a custom DMA interface.