Einordnung
Das Seminar führt von der Driver-Model-Architektur bis zu einem getesteten U-Boot-Treiber. Gerätebindung, Uclasses, Lifecycle, Devicetree-Zugriff, Ressourcen, phasenbezogene Builds, Fehlerbehandlung und Unit-Tests werden an einer vollständigen Treiberimplementierung bearbeitet.
Inhaltsübersicht
- Driver-Model-Architektur verstehen
- Treibergerüst anlegen
- Devicetree-Daten lesen
- Hardware initialisieren
- Bus- und Child-Modelle verwenden
- Treiber für SPL anpassen
- Fehleranalyse und Logging integrieren
- Unit- und Sandbox-Tests schreiben
- Praxisübungen
- Lernziele
Zielgruppe und Vorkenntnisse
Zielgruppe: Embedded-C-Entwicklung, BSP-Teams, Treiberentwicklung und technische Maintainer mit Verantwortung für neue oder zu modernisierende Hardwareunterstützung.
Vorkenntnisse: Sehr gute C-Kenntnisse, sichere U-Boot- und Device-Tree-Grundlagen, Erfahrung mit Cross-Build, Git und Hardwarediagnose.
1. Driver-Model-Architektur verstehen
Uclass, Driver, Device, Parent-Child-Beziehungen und Operations werden klar voneinander getrennt.
- Schritt 1: Gerätehierarchie und Uclass-Zuordnung eines vorhandenen Systems untersuchen.
- Schritt 2: Platform-, Private- und Uclass-Daten unterscheiden.
- Schritt 3: Bind-, Probe-, Remove- und Unbind-Lifecycle nachvollziehen.
2. Treibergerüst anlegen
Ein neuer Treiber wird mit eindeutiger Uclass-Zuordnung und passenden Operations vorbereitet.
- Schritt 1: Treiberstruktur, of_match und Operations definieren.
- Schritt 2: Kconfig- und Makefile-Einbindung hinzufügen.
- Schritt 3: Minimalen Build ohne ungenutzte Abhängigkeiten herstellen.
3. Devicetree-Daten lesen
Konfigurationswerte und Ressourcen werden über vorgesehene Driver-Model-Schnittstellen bezogen.
- Schritt 1: Properties mit Typ- und Werteprüfung lesen.
- Schritt 2: Adressen, Clocks, Resets, GPIOs und Regulatoren anfordern.
- Schritt 3: Fehlende Pflichtwerte mit eindeutigen Fehlercodes behandeln.
4. Hardware initialisieren
Probe und Operations werden in sichere, wiederholbare Zustandsübergänge übersetzt.
- Schritt 1: Ressourcen in definierter Reihenfolge aktivieren.
- Schritt 2: Hardwarezustand vor und nach Initialisierung validieren.
- Schritt 3: Operations mit Timeout, Grenzwertprüfung und sauberem Fehlerpfad implementieren.
5. Bus- und Child-Modelle verwenden
Komplexe Geräte werden mit vorhandenen Uclass- und Busmustern statt Sonderpfaden aufgebaut.
- Schritt 1: Parent-Daten und Child-Pre-Probe-Anforderungen bestimmen.
- Schritt 2: Sequenzen, Aliases und automatische Bindung kontrollieren.
- Schritt 3: Buszugriffe und Child-Lifecycle in einem Beispiel testen.
6. Treiber für SPL anpassen
Frühe Bootphasen erhalten nur notwendige Funktionen und Daten.
- Schritt 1: Phasenspezifische Kconfig-Optionen und Treiberflags prüfen.
- Schritt 2: Devicetree und Ressourcennutzung für SPL reduzieren.
- Schritt 3: Codegröße und Speicherverbrauch gegen das Budget messen.
7. Fehleranalyse und Logging integrieren
Treiberfehler werden mit aussagekräftigen Logs und klarer Rückgabe diagnostizierbar.
- Schritt 1: Fehler an der verursachenden Operation protokollieren.
- Schritt 2: Fehlercodes konsistent verwenden und nicht verschlucken.
- Schritt 3: Probe-Fehler mit Gerätebaum, Devicetree und Ressourcenstatus korrelieren.
8. Unit- und Sandbox-Tests schreiben
Treiberverhalten wird unabhängig von realer Hardware reproduzierbar abgesichert.
- Schritt 1: Emulation oder Sandbox-Gerät für relevante Operations bereitstellen.
- Schritt 2: Positive, Grenz- und Fehlerfälle als Driver-Model-Tests formulieren.
- Schritt 3: Testlauf in den regulären Build- und CI-Prozess integrieren.
Praxisübungen
- Implementierung eines vollständigen Driver-Model-Treibers mit Devicetree-Bindung.
- Portierung eines vereinfachten Legacy-Treibers auf Uclass und Operations.
- Erstellung von Sandbox- und Fehlerpfadtests für Bind, Probe und Geräteoperationen.
Lernziele
- Driver Model, Uclasses, Devices und Lifecycle sicher anwenden.
- Neue Treiber mit Kconfig, Devicetree und Ressourcenmanagement implementieren.
- Treiber für SPL und begrenzte Speicherbudgets optimieren.
- Fehlerbehandlung und Logging konsistent gestalten.
- Treiberverhalten mit Unit- und Sandbox-Tests regressionssicher machen.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 4 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.396 zzgl. MwSt. Inhaus: € 6.800 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Embedded-C-Entwicklung, BSP-Teams, Treiberentwicklung und technische Maintainer mit Verantwortung für neue oder zu modernisierende Hardwareunterstützung. |
| Voraussetzungen: | Sehr gute C-Kenntnisse, sichere U-Boot- und Device-Tree-Grundlagen, Erfahrung mit Cross-Build, Git und Hardwarediagnose. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
