Eingebettete Systeme - Cheatsheet
Definition und Merkmale eingebetteter Systeme
Definition:
In ein größeres System integrierte, spezialisierte Computersysteme, die spezifizierte Aufgaben ausführen.
Details:
- Rechenkapazität auf spezifische Aufgaben beschränkt
- Echtzeitbetrieb häufig erforderlich
- Hohe Zuverlässigkeit und Verfügbarkeit
- Meist geringe Benutzerinteraktion
- Oft ressourcenbeschränkt (CPU, Speicher)
- In Hardware und Software eingebettet
- Beispiele: Medizingeräte, Automobilsteuerungen, Haushaltsgeräte
Energieeffizienz und Leistungsanforderungen
Definition:
Optimierung der Energie und Leistung eingebetteter Systeme für maximale Effizienz.
Details:
- Leistungsaufnahme (\textit{Power Consumption}): \(\text{P} = \text{V} \times \text{I}\)
- Verbrauchsprofil: Ruhezustand, aktive Phasen
- Energieverwaltungstechniken: Taktfrequenzskalierung (DFS), Spannungsanpassung (DVS)
- Leistungsanforderungen: Durchsatz, Latenzzeit, Echtzeitfähigkeit
- Energie-Metriken: Energie pro Operation (EPO), Energieverzögerungs-Produkt (EDP)
- Balancierung: Trade-off zwischen Energieverbrauch und Leistung
Partitionierungsstrategien im Hardware-Software-Co-Design
Definition:
Partitionierungsstrategien im Hardware-Software-Co-Design befassen sich mit der optimalen Aufteilung von Aufgaben oder Komponenten eines eingebetteten Systems auf Hardware und Software, um Leistungsfähigkeit und Effizienz zu maximieren.
Details:
- Ziel: Maximale Effizienz und Leistung
- Balance zwischen Flexibilität der Software und Leistung der Hardware
- Ansätze: statisch (fixe Partitionierung) vs. dynamisch (adaptive Partitionierung)
- Kriterien: Kosten, Energieverbrauch, Zeitverhalten
- Werkzeuge: z.B. Task-Graphen, Scheduling-Algorithmen
Planungsalgorithmen in Echtzeitsystemen
Definition:
Planungsalgorithmen in Echtzeitsystemen garantieren die zeitgerechte Ausführung von Aufgaben unter Berücksichtigung von Echtzeitanforderungen.
Details:
- Statische und dynamische Planungsverfahren
- Prioritätenbasierte Planung
- Raten-Monotone Planung (RMS): Fixe Prioritäten, niedrigstes Intervall erhält höchste Priorität.
- Earliest Deadline First (EDF): Dynamische Prioritäten, früheste Deadline zuerst.
- Nutzenfunktion: \ U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq 1
- Berücksichtigt rechenzeitliche und terminliche Anforderungen
- Fehlertoleranz und Ausfallsicherheit
- Aufgabenwechsel und Kontextwechselkosten
Anpassung und Konfiguration des Embedded Linux Kernels
Definition:
Anpassung und Konfiguration des Embedded Linux Kernels bedeutet die individuelle Einrichtung und Modifikation des Kernels für spezielle Anforderungen und Hardware-Plattformen.
Details:
- Kernel-Quellcode downloaden und entpacken
- \texttt{make menuconfig} nutzen für Konfigurationsmenü
- Hardware-spezifische Module und Treiber aktivieren/deaktivieren
- Kernel-Parameter setzen (z.B. Fußabdruck verkleinern)
- Konfiguration speichern (\texttt{.config}-Datei)
- Kernel kompilieren: \texttt{make} Befehl ausführen
- Erstellte Kernel-Image und Module auf Zielsystem übertragen
Signalverarbeitung und -übertragung in Sensoriksystemen
Definition:
Verarbeitung und Weiterleitung von analogen/digitalen Sensordaten.
Details:
- Signalwandlung: Analog-Digital (AD) und Digital-Analog (DA)
- Filterung: Tiefpass, Hochpass, Bandpass, Bandsperre
- Modulation: Amplituden-, Frequenz-, Phasenmodulation
- Protokolle: I2C, SPI, UART, CAN-Bus
- Fehlerkorrektur: Prüfsummen, Hamming-Code
Angriffsmodelle und -szenarien in eingebetteten Systemen
Definition:
Angriffsmodelle und -szenarien spezifizieren, wie und unter welchen Bedingungen Angriffe auf eingebettete Systeme durchgeführt werden können.
Details:
- Angriffsmodell: Beschreibung der Annahmen über die Fähigkeiten und Ressourcen eines Angreifers.
- Bedrohungsmodell: Bestimmung potenzieller Bedrohungen und Schwachstellen im System.
- Szenarien: Konkrete Beispiele von Angriffen, die durchgeführt werden könnten.
- Common Angriffstypen: Side-Channel-Angriffe, Manipulation von Firmware, physischer Zugriff.
- Sicherheitsmechanismen: Kryptographie, Secure Boot, Zugangskontrolle.
Cross-Entwicklung und -Debugging für Embedded Linux
Definition:
Cross-Entwicklung und -Debugging ermöglichen die Entwicklung und Fehlerbehebung von Software für Embedded Linux auf einem leistungsfähigeren Host-System.
Details:
- Verwende einen Cross-Compiler, z.B. GCC, um Code auf dem Host-System zu kompilieren.
- Debugging erfolgt oft mit gdbserver und gdb über eine Netzwerkverbindung.
- Cross-Development-Toolchains werden zur Anpassung von Compilern und Bibliotheken an die Zielarchitektur verwendet.
- Remote Debugging erlaubt das Setzen von Breakpoints im laufenden Prozess auf dem Zielsystem.
- \texttt{sysroot} wird genutzt, um Bibliotheken und Header-Dateien der Zielplattform im Cross-Entwicklungssystem bereitzustellen.