Embedded Software

Embedded Software bezeichnet Programme, die speziell für ein bestimmtes elektronisches Gerät oder ein technisches System entwickelt werden und dort fest mit der Hardware verbunden sind. Sie ist Bestandteil eines sogenannten Embedded Systems und übernimmt die Steuerung, Überwachung und Koordination der Funktionen eines Geräts oder einer Maschine. Häufig wird in diesem Zusammenhang auch der Begriff Firmware verwendet.

Im Gegensatz zu allgemeiner Anwendungssoftware auf PCs oder Servern ist Embedded Software immer produktspezifisch. Sie wird für eine konkrete Hardwareplattform entwickelt und ist auf deren Ressourcen, Schnittstellen und Aufgaben abgestimmt. Die Software sorgt dafür, dass Sensoren, Aktoren, Kommunikationsschnittstellen und interne Funktionen eines Geräts entsprechend der vorgesehenen Logik zusammenarbeiten.

Typischerweise besteht Embedded Software aus mehreren funktionalen Komponenten. Dazu gehört häufig ein Bootloader, der den Startvorgang des Systems übernimmt und Softwareupdates ermöglicht. Darüber liegt optional ein Betriebssystem oder ein Real-Time Operating System (RTOS), das Aufgaben wie Speicherverwaltung, Task-Scheduling oder Geräteverwaltung bereitstellt. Die Applikationssoftware implementiert schließlich die eigentlichen Produktfunktionen, verarbeitet Daten von Sensoren und steuert Aktoren oder Kommunikationsschnittstellen.

Ein wesentliches Merkmal eingebetteter Software ist ihre enge Kopplung an die Hardware. Ressourcen wie Speicher, Rechenleistung und Energie sind oft begrenzt, weshalb Softwarearchitektur und Implementierung auf diese Einschränkungen abgestimmt werden müssen. Gleichzeitig bestehen häufig Anforderungen an Echtzeitverhalten, Zuverlässigkeit und deterministische Reaktionen des Systems.

Embedded Software kommt in zahlreichen technischen Produkten zum Einsatz, beispielsweise in industriellen Steuerungen, Messgeräten, Haushaltsgeräten, Fahrzeugsteuergeräten oder IoT-Geräten. In vielen dieser Systeme bildet sie die grundlegende Funktionslogik, die das elektronische Gerät überhaupt erst betriebsfähig macht.


Typische Embedded Software-Architektur

Speziell ist die Architektur von Embedded Software durch ihre enge Kopplung an die zugrunde liegende Hardware. Sie ist häufig in mehrere Schichten gegliedert, beispielsweise Bootloader, Hardware-Abstraktionsschicht (HAL) oder Betriebssystem sowie die darüberliegende Applikationssoftware. Diese Struktur trennt Hardwarezugriffe von der Anwendungslogik und ermöglicht eine kontrollierte Systemsteuerung sowie eine bessere Wartbarkeit und Portierbarkeit der Software.

Zurück zum Glossar