Definition „Eingebettete Software“ Was ist Embedded Software?

Autor / Redakteur: HJL / Stephan Augsten

Embedded Software begegnet uns überall im täglichen Leben, meist in Form sogenannter Firmware. Die funktionalen Anwendungen steuern, regeln und überwachen diverse technische Geräte – vom Benutzer weitestgehend unbemerkt.

Anbieter zum Thema

Embedded Software übernimmt hinter den Kulissen die Steuerung, Regelung und Überwachung diverser Geräte.
Embedded Software übernimmt hinter den Kulissen die Steuerung, Regelung und Überwachung diverser Geräte.
(Bild: Pixabay.com / CC0 )

Unter eingebetteter Software versteht man Anwendungen, die im Rahmen des „Embedded Software Engineering“ für eine spezielle Hardware programmiert werden. Häufig sind dies Maschinen oder Geräte im Internet der Dinge, die in ihrer ursprünglichen Funktion nicht als Computer gelten: Herzschrittmacher, Telefone, Fernsehanlagen, Haushaltsgeräte, Medizin- und Flugtechnik oder auch verstärkt Automobile.

Treffend für die an spezielle Aufgabenstellungen angepasste Software, die für eingebettete Systeme entwickelt wird, ist der Fachbegriff „Firmware“. Im Wesentlichen geht es um die enge Verbindung und Interaktion flexibler Software mit einer leistungsoptimierten Hardware.

Dabei übernimmt die Firmware zum einen die Systemsteuerung, darüber hinaus die bedarfsweise erforderliche System-Interaktion mit der Umgebung. Drei Komponenten bestimmen Design und Funktionalität: Bootloader, Betriebssystem und die speziell für die Anwendung geschrieben Applikations-Software.

Embedded Systems sind in der Regel durch straffe Rahmenbedingungen charakterisiert. Dazu zählen Faktoren wie die Minimierung von Kosten-, Raum-, Speicher- und Energiebedarf. Diese Restriktionen führen häufig zu Prozessor-Plattformen, die von der standardisierten PC-Computerwelt deutlich abweichen.

Auf der anderen Seite besteht häufig die Anforderung an Echtzeit-Bedingungen sowie ein Höchstmaß an Sicherheit bezüglich Gerätebedienung und Ausfall-Toleranz. Das Software-Design orientiert sich an diesen Rahmenbedingungen.

Embedded Software – für spezifische Hardware entwickelt

Bei Embedded Software handelt es also sich um Software, die für eine spezifische Hardware entwickelt wurde. Dieser interaktive Bezug kommt im Begriff „Firmware“ zum Ausdruck. Das fertige Produkt setzt sich im Wesentlichen aus folgenden drei Komponenten zusammen:

  • Bootloader
  • Betriebssytem - Operating System
  • Applikations-Software

Die steigende Komplexität in Verbindung mit den heute üblichen kurzen Produktzyklen bestimmen die gewachsenen Anforderungen an die Entwickler Hardware-integrierter Anwendungen. Im Sinne optimaler Produktlösungen arbeiten die „Embedded Software“-Entwickler gemeinsam mit der Hardware-Abteilung an der optimalen Implementierung von Gerätetreibern und Algorithmen.

Zuverlässigkeit und Echtzeitverhalten sind die tragenden Säulen einer gelungenen Embedded-Software-Lösung. Die besondere Herausforderung für den Entwickler besteht darin, die funktionale Komplexität des betreffenden Hardwareprodukts zu verstehen. Nur so wird es ihm gelingen, eine passgenaue Software zu programmieren.

Hohe Anforderungen an Embedded-Software-Entwickler

Hardware-nahes Programmieren erfordert neben der Kenntnis der genutzten Programmiersprachen unbedingt auch Kenntnisse um Compiler-Funktionen sowie Know-how rund um Betriebssysteme und deren Strukturen. Der Anteil der Embedded-Software-Entwicklung an der Wertschöpfung eines fertigen Produkts hat in den vergangenen Jahren stetig zugenommen.

Eingebettete Software hat heute bereits viele Produkt-Performance-Aufgaben übernommen. Zunehmende Funktionalität elektronischer Geräte und höchste Anforderungen an die Benutzerfreundlichkeit zählen zu den spannenden Herausforderungen für die hardwarenah tätigen Software-Spezialisten.

Im Mittelpunkt: korrekte Funktion und Zuverlässigkeit

Die Programmierung für Embedded Systems stellt Entwickler vor besondere Aufgaben. Im Mittelpunkt steht die korrekte Funktion des zu schaffenden Gesamtprodukts. Aufgrund der zunehmenden Komplexität elektronisch betriebener Gebrauchsgegenstände haben Zuverlässigkeit und die Dynamik der Systemabläufe höchste Priorität.

Physikalische Prozesse von Geräten und Motoren geben Zeitabläufe vor. Die optimierte Software wird auf eine entsprechende Echtzeitverarbeitung der Abläufe zugeschnitten. Eine Gefährdung für den Benutzer gilt es mit allen Mitteln zu vermeiden.

Sowohl an Hardware als auch Software eines eingebetteten Systems werden höchste Zuverlässigkeitsanforderungen gestellt. Das Maß der Softwarequalität wird an den folgenden Merkmalen abgeglichen:

  • Benutzbarkeit
  • Funktionalität
  • Effizienz
  • Zuverlässigkeit (engl.: Reliablity)

Das Zauberwort „Reliability“ – also die Zuverlässigkeit – kennzeichnet das Geschehen rund um die Entwicklung von Embedded Software maßgeblich. Ein diffiziles Bewertungsraster gibt in der Auswertung Aufschluss über Anzahl und Art auftretender Fehler. Die Aufgabe des Software Engineering besteht darin, die Fehlerrate auf verbindlich fest geschriebene Zahlen einzugrenzen.

Artikelfiles und Artikellinks

(ID:44509091)