Context Card
Schichten eines Hardware-SDK
Welche Schichten liefert ein Hardware-SDK zwischen Anwendungscode und Gerät?
Die kurze Antwort
Ein Hardware-SDK stapelt mehrere Schichten: eine Toolchain, die Code für den Zielprozessor übersetzt und bindet, hardwarenahe Treiber und eine Beschreibung der Platine oder des Geräts, eine Hardware-Abstraktionsschicht, die Registerdetails verbirgt, optional Betriebssystem- oder Laufzeitunterstützung sowie höhere Bibliotheken oder Standard-APIs für Anwendungen. Debugging- und Flash-Werkzeuge verbinden den Rechner des Entwicklers mit dem physischen Gerät.
Für: Embedded-Entwickler und Technische Redakteure, die Geräte dokumentieren
Das Wichtigste
- Toolchain: Compiler, Linker und Bibliotheken für den Zielprozessor, oft per Cross-Compilation.
- Treiber und Gerätebeschreibung: Code und Daten, die Register und Peripherie kennen.
- Hardware-Abstraktionsschicht: eine stabile Schnittstelle über den gerätespezifischen Details.
- Laufzeit oder Betriebssystem: Scheduling, Speicher und bei Bedarf Echtzeitverhalten.
- Werkzeuge: Debugger, Debug-Probes, Emulatoren und Flash-Programme.
Der Zusammenhang
Von Registern zu Anwendungen
Ganz unten stehen das Gerät und seine Firmware. Gerätetreiber sprechen Register und Peripherie eines Mikrocontrollers oder Prozessors an. Eine Hardware-Abstraktionsschicht legt eine Abstraktion darüber, damit sich Anwendungscode nicht mit jeder Chip-Revision ändert.
Darüber liegen eine Laufzeitumgebung – manchmal ein Echtzeitbetriebssystem – und Bibliotheken oder Standard-APIs, etwa für Grafik, paralleles Rechnen oder Extended Reality.
Die Toolchain
Eine Compiler-Toolchain erzeugt Code für das Ziel, meist eine andere Architektur als die des Entwicklerrechners. Die binäre Anwendungsschnittstelle legt fest, wie übersetzte Teile zusammenpassen. Debugging findet über eine Probe am Gerät oder in einem Emulator statt.
Ein Hardware-SDK macht ein Gerät programmierbar; es macht keine Funktion sicher. Sicherheitsfunktionen folgen eigenen Normen und Nachweisen.
Siehe den Enzyklopädie-Artikel Hardware SDKs (auf Englisch).
Fragen, die sich daran anschließen
- Warum brauchen Hardware-SDKs Cross-Compilation?
- Der Code entsteht auf einem Desktop-Rechner, läuft aber auf einer anderen Prozessorarchitektur; die Toolchain übersetzt daher für das Ziel, nicht für den Entwicklungsrechner.
- Enthält ein Hardware-SDK die Gerätetreiber?
- Meist enthält oder referenziert es sie, zusammen mit einem Board Support Package oder einer Gerätebeschreibung für die konkrete Hardware.
Quellen
- Android NDK — Android Developers
- OpenXR — Khronos Group
- Devicetree specification — devicetree.org
Prüfprotokoll und Änderungen
Jede Context Card wird vor der Veröffentlichung und bei jeder Änderung erneut anhand ihrer Quellen geprüft; das Datum unter der Autorenzeile ist die letzte Prüfung. Korrekturen (etwas war falsch) und Ergänzungen (etwas fehlte) stehen unten mit Datum und Uhrzeit (deutsche Zeit). Tippfehler, Formatierung und Link-Korrekturen werden nicht aufgeführt.
Geprüft
Seit der Veröffentlichung keine Korrekturen oder Ergänzungen.