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.

Leiterplatte mit Mikrochip – Elektronik und embedded hardware, Nahaufnahme.
Nahaufnahme von Elektronikbauteilen (Steckverbinder, Kondensatoren) – embedded hardware, elektronik

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:

  • SPI
  • UART
  • I2C
  • CAN
  • Ethernet

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.

  • RAM-Initialisierung und Speichercontroller-Konfiguration
  • Flash-Anbindung und Flash-Treiber
  • Speicherlayout und Zugriffsschichten

Analoge und digitale Peripherie

Für die Anbindung von Hardwarefunktionen werden Treiber für verschiedene Peripherieeinheiten implementiert, etwa:

  • Digitale I/O (GPIO)
  • ADC und DAC
  • Timer- und Capture Compare
  • Interruptsysteme und Traps

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.

  • DSI (Display Serial Interface)
  • CSI (Camera Serial Interface)
  • RAM Buffer

Safety & Security

Moderne Mikrocontroller- und Prozessorplattformen verfügen über integrierte Mechanismen zur Unterstützung von Security- und Safety-Anforderungen.

  • HSE-/HSM-Anbindung
  • MPU-Konfiguration (Memory Protection Unit)
  • ECC-Initialisierung und Fehlerbehandlung (Error Correction Code)
  • Lock-Step-Konfiguration
  • Secure Boot
  • Zugriffskontrollen auf Speicher- und Peripheriebereiche

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:

  • Anbindung von Motor Controller ICs
  • LE-Ansteuerung (Leistungselektronik)
  • Power Management
  • Anbindung von System Basis Chips (SBC)