Treiber- und Low-Level-Software
Die Entwicklung von Treibern und Low-Level-Software bildet die technische Grundlage für nahezu jedes Embedded-System. In dieser Schicht erfolgt die direkte Ansteuerung der Hardwarekomponenten sowie die initiale Systemkonfiguration eines Mikrocontrollers oder Prozessors. Ziel ist eine stabile, nachvollziehbare und dokumentierte Softwarebasis, auf der Betriebssysteme, Middleware oder Applikationssoftware aufsetzen können.


Low Level Embedded Software
Board Support Packages und Hardware Abstraction Layer
PICKPLACE entwickelt und integriert Low-Level-Software für Mikrocontroller- und Prozessorplattformen im Rahmen von Hardwareentwicklungen, Plattformportierungen oder bei der Inbetriebnahme neuer Baugruppen. Dabei werden sowohl interne Peripherien eines Controllers als auch externe Komponenten angebunden.
Typische Inhalte solcher Projekte sind die Entwicklung, Anpassung oder Portierung von Treibern für verschiedene Hardwarefunktionen.
Treiberentwicklung
Anders als in prototypischen oder rein applikationsorientierten Embedded-Projekten sind viele sicherheitskritische Systeme dadurch geprägt, dass Treiber nicht auf vorhandenen Bibliotheken oder generischen HAL-Implementierungen basieren. In solchen Projekten müssen Treiber häufig von Grund auf neu entwickelt werden.
Der Hintergrund liegt in den Anforderungen an Nachvollziehbarkeit, deterministisches Verhalten und vollständige Kontrolle über den ausgeführten Code. Vorhandene Treiber aus SDKs oder Middleware sind häufig für schnelle Entwicklung ausgelegt, enthalten jedoch umfangreiche Abstraktionsschichten, nicht benötigte Funktionen oder schwer überprüfbare Implementierungen.
In sicherheitskritischen Architekturen wird daher häufig eine vollständige Low-Level-Implementierung erstellt. Dabei wird die Software direkt auf Basis des Instruction Sets des jeweiligen Mikrocontrollers oder Mikroprozessors entwickelt. Registerzugriffe, Interrupt-Handling, Speicherzugriffe und Timingverhalten werden gezielt implementiert und überprüft. Ziel ist es, kritischen Code vollständig zu verstehen, kontrollieren und verifizieren zu können.
Kommunikation
Viele Embedded-Systeme basieren auf standardisierten Kommunikationsschnittstellen zur Anbindung von Sensoren, Aktoren oder Subsystemen. Dazu gehört die Implementierung und Integration von Treibern für:
Speicheranbindung
Ein weiterer Bestandteil der Low-Level-Schicht ist der Zugriff auf interne und externe Speicher. In vielen Projekten ist zudem die Entwicklung oder Anpassung eines Bootloaders erforderlich, beispielsweise für Firmware-Updates oder sichere Systemstarts.
Analoge und digitale Peripherie
Für die Anbindung von Hardwarefunktionen werden Treiber für verschiedene Peripherieeinheiten implementiert, etwa:
Diese Komponenten bilden häufig die Basis für Sensoranbindungen oder Leistungssteuerungen.
Display und Kamera
Bei Systemen mit visuellen Komponenten gehören auch Schnittstellen für Display- oder Kameramodule zur Low-Level-Integration. Hierbei werden die jeweiligen Schnittstellencontroller konfiguriert und an die übergeordnete Software angebunden.
Safety & Security
Moderne Mikrocontroller- und Prozessorplattformen verfügen über integrierte Mechanismen zur Unterstützung von Security- und Safety-Anforderungen.
Motor Controller und Leistungselektronik
In vielen Embedded-Systemen gehört auch die Ansteuerung von Aktoren und Leistungselektronik zur Low-Level-Software. Dazu zählen insbesondere Anwendungen im Bereich Antriebssteuerung, industrielle Aktorik oder Steuergeräte für Maschinen und Fahrzeuge. Die Treiberentwicklung umfasst hier sowohl die Anbindung spezialisierter Controller-ICs als auch die direkte Steuerung von Leistungsstufen.
Typische Inhalte sind: