Error-correcting code between file system and SPI Flash to secure data storage

Before continuing please visit: Project Thesis

Motivation

We are currently working on a sensor platform that uses the nrf52840 BLE SoC as a processing unit. The storage medium is an IS25LE01G SPI NOR Flash.

RIOT OS is the operating system to be used on the sensor system. It already implements all the necessary drivers and interfaces for the flash. A file system is also already implemented (e.g. LittleFS). In order to protect both the file system itself and the data, an intermediate layer is to be implemented, which secures the transactions between the file system and flash using ECC. The ECC to be used is the Reed-Solomon code often used for this purpose.

Transactions are to be encoded and decoded. Errors should be recognized and corrected if possible. Error reports and general housekeeping (e.g. regular scrubbing of the flash and checking for errors) should be possible as a self-test if required. The influence on write and read speed should be determined by extensive evaluations.

Tasks

In this master project work, student has to perform the following tasks:

Block Diagram
Figure 1: Block diagram of the intermediate layer that should protect the data transfer between file system and Flash.

Further Reading

  1. nRF52840 Product Specification
  2. RIOT OS
  3. SPI NOR Flash IS25LE01G
  4. Reed Solomon Codes