
Treiberentwicklung für Datenfusion auf ARM Cortex-M4
Im Rahmen eines Robotik-Projektes wurden Protokolltreiber für die Schnittstellen
eines STM32L476RG (ARM Cortex-M4) implementiert. Der STM32L4 zentralisiert die
Datenverarbeitung/-fusion von Sensoren zur Eigenbewegungsschätzung, sowie die
Steuerung von Aktoren (Servocontrolboard) und ist mit einem leistungsfähigeren
Masterprozessor verbunden.
Zur besseren Verständlichkeit und Erweiterbarkeit der verwendeten Peripherie und deren
Konfiguration wurde eine minimale Hardwareabstraktionsebene in C++17 entwickelt.
Für die parallele Verarbeitung der Daten mit unterschiedlicher Datenrate wird FreeRTOS als
Task-Scheduler eingesetzt.
- Implementierung von I2C-Treiber für IMU und Odometrie
- Implementierung der UART-Schnittstelle für Logging
- Implementierung der ISP-Schnittstelle zum Masterprozessor
- Entwicklung eines Anwendungsspezifischen Protokolls
- Integration von minimalen FreeRTOS Task-Scheduleing
- Konfiguration von GPIOs für Taster und Status-LEDs
- Erstellen von Skripten (Bash, Python, Json) für Buildumgebung und CI
- Integration der Entwicklungsumgebung in Docker-Container
- Hardware: STM32L476RG (ARM Cortex-M4)
- Programmiersprachen: C, C++ 17