In my thesis I describe the software of a data storage module (including the design of the file system, and the communication interface of the module) I designed to work in an environment with special conditions.
Before the designing process I inquired into the demands of the customer, and researched the relevant literature. I analysed existing file systems and their resource requirements and reliability. In addition, I studied the hardware and communication interfaces of the module, for example the used microcontroller (which has a Cortex M4 core, and is produced by STMicroelectronics), the eMMC chip, and the SDIO and SPI interfaces. I also studied the related standards and recommendations. According to the literature research findings and the demands of the customer I decided to design and use a unique file system, which is similar to the Ext2.
According to the related space technology recommendations and the properties of the hardware, I designed the external communication interface of the module. I inquired into the scheduler used by the company, and I designed the software architecture of the module. It was very important to design software modules, which are easy to test and change.
The tasks of the file system were implemented in C language and I carried out the implementation and testing using Microsoft Visual Studio. For the version control of the Source Code I studied and used the company’s version control system. I wrote unit tests for the implemented code through which I could check the functionality of my code. For the test I made a software module, which is able to simulate the storage in a PC environment. In the simulation environment I substituted the functions, which manage the eMMC, by file operations, and the memory by a 32 Gigabyte large file. At the end I tested the performance of the implemented file system and in particular the number of storage operations used by the file system commands.