BWP523: Kernel- und Treiberprogrammierung (mit Praktikum)
Wahlpflichtmodule
BWP523: Kernel- und Treiberprogrammierung (mit Praktikum)
Modulverantwortung
Prof. Dr. Jürgen Quade
Lehrperson(en)
Prof. Dr. Jürgen Quade
Verwendbarkeit
- Bachelor Elektrotechnik
- Bachelor Maschinenbau
- Bachelor Mechatronik und Robotik
Fächergruppe
Ingenieurwissenschaften
Modultyp
Wahlpflicht
Sprache
Deutsch
Angebot
jährlich
Dauer
1 Semester
Credits
5 ECTS
Benotung
Deutsche Notenskala 1-5
SWS
2 V | 1 Ü | 1 P | - S
Workload
Präsenzstudium: 45 Std. Selbststudium: 90 Std.
Engl. Titel
Kernel and Device Driver Programming
Empfohlene Voraussetzungen
- BB008: Informatik für Ingenieurwissenschaften: Programmiergrundlagen, Algorithmen und strukturierte Umsetzung technischer Abläufe.
- BET301: Mikrocontroller-Programmierung: hardwarenahe Softwareentwicklung, Peripherienutzung, Debugging und Test eingebetteter Funktionen.
- BET303: Echtzeitsysteme: zeitkritische Abläufe, Nebenläufigkeit, Synchronisation und Bewertung des Zeitverhaltens eingebetteter Systeme.
Lernergebnisse / Kompetenzen
WAS
Die Studierenden können für ein konkretes Embedded-Linux-Gerät einen Linux-Gerätetreiber für eine gegebene Hardwarekomponente entwerfen, implementieren und in das System integrieren.
WOMIT
Die Studierenden erreichen dieses Lernergebnis, indem sie
- das Datenblatt einer einfachen Peripherie analysieren und relevante Register, Signale und Protokolle identifizieren,
- die passende Treiberklasse und Kernel-Subsysteme auswählen und die Einbindung über Device Tree planen,
- ein Treiberskelett mit Initialisierungs- und Aufräumfunktionen erstellen,
- Hardwarezugriffe mit geeigneten Kernel-APIs umsetzen,
- grundlegende Nebenläufigkeitsaspekte berücksichtigen,
- den Treiber bauen, in das Zielsystem deployen, als Modul laden/entladen und die Sichtbarkeit im System überprüfen,
- die Funktion des Treibers mit einfachen Userland-Programmen bzw. Skripten testen, typische Fehler systematisch debuggen und Korrekturen vornehmen
WOZU
um in der Entwicklung eingebetteter Linux-Geräte eigenständig systemkonform neue Hardwarekomponenten an den Kernel anzubinden und ihre Funktion zuverlässig für Applikationssoftware bereitzustellen.
Inhalte
- Theoretischer Unterbaum (Abarbeitungskontext, Unterbrechungsmodell)
- Build-System & Arbeitsumgebung
- Treiber aus Sicht der Applikation
- Einfache Gerätetreiber (Einsprungspunkte, Datentransfer, Device Tree)
- Kritische Abschnitte erkennen und absichern
- Systemaspekte (Proc-Filesystem, Gerätemodell, Realzeitaspekte)
- Sonstige Treibersubsysteme (GPIO, I2C, SPI, Industrial I/O)
- Device Tree & Plattform-Integration
Prüfungsvorleistung
aktive Praktikumsteilnahme
Prüfungsleistung
Studien-/Projektarbeit: schriftlicher Teil (10-20 Seiten) mit Fachgespräch (15-20 Minuten)
Literatur
- Jürgen Quade: Linux-Treiber entwickeln. 5. Auflage, dpunkt.verlag, 2025.