Logo

Programmier­techniken für eingebettete Systeme


Beschreibung

Der Anteil an eingebetteten Systemen, oft auch als Embedded Systems bezeichnet, wächst aktuell stetig. Eingebettete Systeme haben meist besondere Anforderungen. Sie müssen zuverlässig und möglichst ausfallsicher sein. Zusätzlich spielen bei der Programmierung die eingeschränkten Ressourcen, z.B. von RAM und ROM, eine wichtige Rolle.

Die Flexibilität der Sprache C++ macht sie zu einer attraktiven Sprache für Projekte im Bereich eingebetteter Software. Mit C++11/14 sind weitere Sprachmittel hinzugekommen, welche die Sprache weiter ausbauen. In der Vorlesung lernen Teilnehmende die Lesbarkeit, die Korrektheit und die Effizienz von eingebetteter Software mit C++ zu verbessern.

Inhalte sind:

  • Definition von eingebetteten Systemen
  • Einführung / Wiederholung in C++
  • Konzepte zur effizienten Programmierung in C++
  • Speicherverwaltung und Allokationstechniken
  • Implementierung von Zustandsautomaten
  • Code wartbar schreiben
  • Umgang mit statischer Code-Analyse

In dem praktisch ausgerichteten Teil der Vorlesung geht es um Datenübertragung, das Parsen und das Verarbeiten von Daten. Die Teilnehmenden lösen Aufgaben und diskutieren diese im Anschluss in der Gruppe. Als Werkzeuge dienen Linux mit g++ oder clang.

Die erworbenen Kenntnisse sind nicht auf den Sektor eingebetteter Systeme beschränkt. Sie lassen sich in allen Bereichen anwenden, um dort Programme prägnanter zu gestalten.

Unterlagen

Die Vorlesungsunterlagen sind zum Teil mit Passwörtern geschützt. Diese werden in der Vorlesung bekannt gegeben.

Notenbildung

Für die Notenbildung sind 5 Aufgaben zu bearbeiten sowie 5 kurze (~5min) Präsentationen der Lösung zu halten.

Folien

Einführung[ pdf ]
Allgemeines[ pdf ]
C++ Einführung[ pdf ]
Semantik[ pdf ]
C++ in Depth[ pdf ]
Modern C++[ pdf ]
Speicherallokation[ pdf ]
Zustandsautomaten[ pdf ]
Organisatorisches (Stand 11.3.2022)[ pdf ]

Übungblätter

Übungsblatt 1[ pdf ]
Makefile[ zip ]
Dockerfile[ zip ]



Das Docker-Image ist ebenfalls in gebauter Version auf DockerHub verfügbar:

docker pull andreasfertig/pfes:latest