Seminar / Training
Dieses Seminar vermittelt eine belastbare Diagnosemethodik für Fehler vom frühen Reset bis zu EL3-Laufzeitdiensten. Konsolenausgaben, Assertions, Crash-Register, ELF- und Map-Dateien, Debugger und Laufzeitinstrumentierung werden zu einer abgestuften Analysefolge verbunden. Neben klassischen Boot-Problemen werden Speicherfehler, falsche Übergaben, Mehrkernprobleme und sporadische Fehler reproduzierbar eingegrenzt.
Inhaltsübersicht
- Diagnosestrategie und Eingrenzung
- Logging, Assertions und frühe Konsole
- Crash Reporting und Registeranalyse
- ELF-, Map- und Binäranalyse
- Debugger auf QEMU oder FVP
- Mehrkern-, Cache- und Timingfehler
- Runtime-Instrumentierung und DebugFS
- Fault Injection und Vergleichsläufe
- Ursachenbehebung und Regression
Lernziele
- Diagnoseinformationen für frühe Boot- und Laufzeitphasen gezielt aktivieren.
- Crash-Ausgaben, Registerzustände, Symbole und Speicherlayouts sicher auswerten.
- QEMU- oder FVP-Debugging mit GDB und kontrollierten Haltepunkten einsetzen.
- Sporadische Fehler durch Instrumentierung, Fault Injection und Vergleichsläufe reproduzieren.
- Eine wiederholbare Fehleranalyse mit Ursache, Korrektur und Regressionstest dokumentieren.
Seminarinhalte
1. Diagnosestrategie und Eingrenzung
- Schritt 1: Symptom, Ausfallphase, Reproduzierbarkeit und letzte bekannte funktionierende Konfiguration werden getrennt erfasst.
- Schritt 2: Build-, Plattform-, Image- und Laufzeitfehler werden anhand einer Entscheidungskette unterschieden.
- Schritt 3: Jeder Diagnoseschritt erhält eine Erwartung, einen Prüfnachweis und eine Abbruchbedingung.
Praxis: Aus einer unvollständigen Fehlermeldung wird ein strukturierter Diagnoseplan erstellt.
2. Logging, Assertions und frühe Konsole
- Schritt 1: Log-Level, Debug-Build und Assertions werden gezielt aktiviert.
- Schritt 2: Frühe Konsolentreiber, Pufferung und Zeitpunkte der Verfügbarkeit werden überprüft.
- Schritt 3: Zusätzliche Trace-Punkte werden so gesetzt, dass Timing und Seiteneffekte kontrollierbar bleiben.
Praxis: Ein stiller Frühstartfehler wird durch schrittweise Erweiterung der Konsolenausgabe sichtbar gemacht.
3. Crash Reporting und Registeranalyse
- Schritt 1: Exception-Klasse, ESR, FAR, ELR, SPSR und General-Purpose-Register werden in der richtigen Reihenfolge gelesen.
- Schritt 2: PC- und LR-Werte werden mit Symbolen, Disassembly und Quellzeilen verknüpft.
- Schritt 3: Stack-Zustand, Exception Level und aktiver Sicherheitszustand werden auf Plausibilität geprüft.
Praxis: Ein vorbereiteter Datenabort wird vom Registerdump bis zur fehlerhaften Speicheroperation zurückverfolgt.
4. ELF-, Map- und Binäranalyse
- Schritt 1: Sections, Symbole, Relokationen und Größen werden mit Kommandozeilenwerkzeugen untersucht.
- Schritt 2: Linker-Map, Plattformgrenzen und Laufzeitadressen werden gegeneinander geprüft.
- Schritt 3: FIP-Inhalte und tatsächlich geladene Images werden auf Versions- und Größenabweichungen kontrolliert.
Praxis: Ein Adresskonflikt wird aus Map-Datei und Laufzeitprotokoll rekonstruiert.
5. Debugger auf QEMU oder FVP
- Schritt 1: Die Plattform wird im angehaltenen Zustand mit Debug-Port gestartet.
- Schritt 2: Symbole für mehrere Boot-Images werden an den korrekten Ladeadressen eingebunden.
- Schritt 3: Haltepunkte, Watchpoints, Register- und Speicherprüfungen werden bootstufengerecht eingesetzt.
Praxis: Ein Fehler zwischen BL2 und BL31 wird mit mehreren Symboltabellen schrittweise analysiert.
6. Mehrkern-, Cache- und Timingfehler
- Schritt 1: Primär- und Sekundärprozessorpfade werden getrennt protokolliert.
- Schritt 2: Kohärenz, Cache-Wartung, Barrieren und gemeinsam genutzte Zustände werden überprüft.
- Schritt 3: Race Conditions werden durch Wiederholung, gezielte Verzögerung und CPU-spezifische Traces eingegrenzt.
Praxis: Ein sporadischer Warm-Boot-Fehler wird über CPU-Markierungen und Zeitstempel reproduziert.
7. Runtime-Instrumentierung und DebugFS
- Schritt 1: Messpunkte für Laufzeit und Power-Management werden ausgewählt.
- Schritt 2: Diagnosedaten werden über geeignete Schnittstellen für höhere Software-Schichten bereitgestellt.
- Schritt 3: Produktions- und Diagnosekonfigurationen werden hinsichtlich Informationsabfluss und Aufwand getrennt.
Praxis: Ein kleiner Diagnosedatensatz wird erfasst, ausgelesen und gegen erwartete Abläufe geprüft.
8. Fault Injection und Vergleichsläufe
- Schritt 1: Fehler werden kontrolliert in Image-Laden, Konfiguration, Speicher und Laufzeitdienste eingebracht.
- Schritt 2: Ein funktionierender und ein fehlerhafter Lauf werden automatisiert verglichen.
- Schritt 3: Nicht deterministische Abweichungen werden durch feste Eingaben und wiederholbare Startbedingungen reduziert.
Praxis: Ein künstlich beschädigtes Image wird erkannt, klassifiziert und mit einer passenden Fehlermeldung abgesichert.
9. Ursachenbehebung und Regression
- Schritt 1: Die kleinste wirksame Korrektur wird von Umgehungslösungen getrennt.
- Schritt 2: Neben dem positiven Test werden negative und angrenzende Konfigurationen geprüft.
- Schritt 3: Analyse, Patch, Testnachweis und verbleibendes Risiko werden in einem Fehlerbericht zusammengeführt.
Praxis: Eine vollständige Fehlerakte wird aus Diagnoseprotokoll, Patch und Regressionstest erstellt.
Zielgruppe
Firmware-Entwickler, BSP-Entwickler, Plattformintegratoren, Embedded-Debugging-Spezialisten und technische Supportteams.
Voraussetzungen
Sichere C- und Linux-Kenntnisse, TF-A-Grundlagen, Umgang mit Cross-Compiler-Werkzeugen; erste GDB-Erfahrung ist vorteilhaft.
Praxisumgebung
Linux-Arbeitsplatz mit Debug-Toolchain, GDB, Binutils, QEMU oder FVP, Git und vorbereiteten fehlerhaften TF-A-Konfigurationen.
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: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Firmware-Entwickler, BSP-Entwickler, Plattformintegratoren, Embedded-Debugging-Spezialisten und technische Supportteams. |
| Voraussetzungen: | Sichere C- und Linux-Kenntnisse, TF-A-Grundlagen, Umgang mit Cross-Compiler-Werkzeugen; erste GDB-Erfahrung ist vorteilhaft. |
| 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, Quellcodeanalyse, Demonstrationen, praktische Übungen am System und kontrollierte Fehlerfälle |
| 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.
