Microcontroller Systems Programming

    Nummer
    mspr
    ECTS
    3.0
    Anspruchsniveau
    advanced
    Inhaltsübersicht

    Das Modul richtet sich an Studierende, welche sich bezüglich hardwarenaher Programmierung, Realisation von Echtzeit-Mikrocontrollersystemen und Low-Power IoT-Geräten theoretisch und praktisch vertiefen möchten. Inhaltlich wird damit die Brücke zwischen einfachen, betriebssystemlosen Mikrocontrollersystemen und komplexen, Linux-basierten Systemlösungen geschlossen, deren Kosten und Energiebedarf vergleichsweise höher liegen.

    • Einführung in die Programmiersprache C++ für Deep-Embedded-Geräte.
    • Echtzeitverhalten und Ressourcenbedarf verschiedener Software-Architekturansätze.
    • Eigenschaften und Funktionsweise gängiger Real-Time Operating Systems (RTOS).
    • Debugging für Fortgeschrittene: Watch-Points, Breakpoint-Conditions, Breakpoint-Actions, Ein- und Ausgabe von Speichersegmenten von bzw. auf Dateien.
    • Real-Time Multitasking-Mechanismen wie Scheduling, symmetrische und asymmetrische Task-Synchronisation, gegenseitiger Ausschluss, Intertask-Kommunikationsmechanismen, vermeiden von Prioritätsinversion etc.
    • Effiziente Input-/Output-Pufferung mittels interruptgesteuerter Double-Buffering, DMA und eventbasierter autonomer Peripheriefunktionen.
    • Build-Systeme (cmake) und Design for Testability, Unit-Testing.
    • Linker-Skript und Segmentallokation.
    • Überblick über IoT-taugliche Stacks, Funkprotokolle und Sicherheitsmechanismen mit exemplarischer Vertiefung in Bluetooth Low Energy (BLE).
    • Viel "Hands-On" mit Microcontrollerboard inkl. Touch-Screen.
    Lernziele

    Die Studierenden kennen die Problematik von Echtzeitanwendungen sowie ein gängiges Echtzeit-Betriebssystem. Sie können sowohl Echtzeit-Multitasking Anwendungen als auch Low-Power IoT-Anwendungen fachgerecht entwerfen und auf einem Echtzeit-Betriebssystem in C oder C++ realisieren und debuggen. Die Studierenden kennen die gängigsten Programmiermuster zur effizienten I/O-Pufferung. Die Studierenden haben eine Übersicht über Protokolle und Problematiken im Bereich IoT. Die Studierenden beherrschen die Sprachelemente der Programmiersprache C++ und sind in der Lage, diese für Systemen mit eingeschränkten Ressourcen einzusetzen.

    Empfohlene Vorkenntnisse
    Mikrocontroller - Grundlagen (mcGL) Objektorientierte Programmierung (oop2)
    Leistungsbewertung
    Erfahrungsnote und MSP schriftlich (50/50)