MCU Flash File System

Die meisten Mikrocontroller verfügen über internen Flashspeicher zur Ablage von Programmcode und Benutzerdaten. Dieser Speicher ist jedoch nur begrenzt oft beschreibbar, wodurch bei häufigen Schreibzugriffen die Lebensdauer einzelner Speicherzellen reduziert wird.

Für die zuverlässige Speicherung von persistenten Daten haben wir ein leichtgewichtiges MCU Flash File System entwickelt, das Schreibzugriffe gezielt über den Flashspeicher verteilt und so die Abnutzung einzelner Speicherbereiche minimiert. Dabei werden serialisierte C-Strukturen als sogenannte „Files“ sequentiell im Flash abgelegt, jeweils mit einer ID versehen und durch eine Checksumme abgesichert.

Neue Datensätze werden konsequent append-only geschrieben, während beim Lesen automatisch der zuletzt gültige und konsistente Eintrag einer ID ermittelt wird. Durch das zugrunde liegende failsafe Design bleiben die Daten auch bei unerwarteten Spannungsausfällen oder Systemabbrüchen jederzeit in einem gültigen Zustand.

Zudem erleichtert das System die zentrale Speicherung verteilter Moduldaten, da für jeden Datensatz lediglich eine ID benötigt wird.

Sobald ein Speicherblock vollständig belegt ist, erfolgt ein Blockwechsel: Ein neuer Block wird gelöscht und anschließend mit den jeweils aktuellen Datensätzen konsolidiert beschrieben. Dieses Verfahren ermöglicht eine robuste, effiziente und verschleißoptimierte Datenspeicherung in ressourcenbeschränkten Embedded-Systemen.

Unsere Leistungen

  • Konzeption und Entwicklung eines MCU Flash File Systems
  • Umsetzung von Wear-Leveling-Mechanismen zur Lebensdaueroptimierung
  • Integration in bestehende Embedded-Systeme

Technologien

Hardware

  • PIC24
  • STM32

Software / Verfahren

  • Flash File System – leichtgewichtiges Dateisystem für MCU-Flash
  • Wear Leveling – Verteilung von Schreibzugriffen zur Reduzierung von Verschleiß
  • Append-Only Logging – sequentielle Datenspeicherung
  • Failsafe Design – konsistenter Zustand bei Systemabbrüchen
  • Checksum – Absicherung der Datenintegrität
  • Datenkonsolidierung – Übertragung gültiger Datensätze bei Blockwechsel
  • Serialisierung – Speicherung von C-Strukturen im Flash

Programmiersprachen

  • C

Tools

Softwareentwicklung

  • KDevelop – C/C++ Entwicklungsumgebung

Debugging & Analyse

  • GDB – Debugging und Analyse der Embedded-Software

Projektmanagement & Versionskontrolle

  • Git – Versionskontrolle