Definition „Eingebettete Software“

Was ist Embedded Software?

| Autor / Redakteur: HJL / Stephan Augsten

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)

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.

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 und 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 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-Softwarelö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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Objektorientierte Programmierung mit C

Softwaretechnik

Objektorientierte Programmierung mit C

Obwohl C keine objektorientierte Sprache ist, ist die objektorientierte Programmierung mit ihr möglich. Dieser Artikel beschäftigt sich mit der Umsetzung von UML-Elementen aus dem Klassendiagramm in C-Code. Es wird gezeigt, was möglich ist und wo die Umsetzung mit der Programmiersprache C an ihre Grenzen stößt. lesen

Windows Eclipse IDE mit Unterstützung von RISC-V Befehlssätzen

SoftConsole 5.1

Windows Eclipse IDE mit Unterstützung von RISC-V Befehlssätzen

Microsemi stellt die Version 5.1 seiner Entwicklungsumgebung SoftConsole vor. Es ist die weltweit erste verfügbare Windows Eclipse IDE (Integrated Development Environment) für Designs, die offene RISC-V Befehlssatz-Architekturen (ISAs) wie RV32I nutzen. lesen

Zweiter „Make with Ada“-Programmierwettbewerb

Embedded Software Engineering

Zweiter „Make with Ada“-Programmierwettbewerb

Embedded-Software-Entwickler können ihre mit Ada und SPARK realisierten Projekte bis Mitte September beim Wettbewerb „Make with Ada“ vorstellen. Bis zu 5000 Euro winken dem besten Entwickler oder Development-Team mit bis zu vier Mitgliedern. lesen

Wie sicher ist Ihr Embedded-System?

Sichere Systementwicklung

Wie sicher ist Ihr Embedded-System?

Das Internet der Dinge dringt in Gebiete wie Medizin, Automotive und Industrie vor. Für diese Systeme wird nicht nur die funktionale Sicherheit, sondern auch der Schutz gegen Cyber-Attacken wesentlich. lesen

Ist C++ für echtzeitkritische Anwendungen sinnvoll?

Implementierung

Ist C++ für echtzeitkritische Anwendungen sinnvoll?

Die Objektorientierte Programmierung in C++ hat unter vielen Embedded-Programmierern den Ruf, gegenüber der Strukturierten Programmierung in C weniger performant zu sein. Hierdurch wird C++ meist von vornherein ausgeschlossen. lesen

Ist ein „Let it Crash”-Paradigma in C++ sicher?

Software Engineering Management

Ist ein „Let it Crash”-Paradigma in C++ sicher?

„Lass es abstürzen“ (Let it Crash) ist selbstverständlich keine valide Fehlerbehandlungsoption für ein sicherheitskritisches System. Oder etwa doch? lesen

PikeOS 4.2 mit besserer Multicore-Untestützung

Echtzeitbetriebssystem

PikeOS 4.2 mit besserer Multicore-Untestützung

Embedded Software setzt vor allem in rechenintensiven Umgebungen zunehmend auf Multicore-Prozessoren. SYSGO hat das Echtzeit-Betriebssystem PikeOS 4.2 diesbezüglich optimiert und die Software-Architektur auf gängige Sicherheitsstandards ausgerichtet. lesen

Software, die nicht gehackt werden kann, ist Realität

Zukunft der Softwareentwicklung

Software, die nicht gehackt werden kann, ist Realität

Software für kritische Systeme erlaubt keine Kompromisse bei Safety, Security und Zuverlässigkeit. Die Bedeutung von Embedded Software Security und entsprechenden Anbietern wie Green Hills Software wird daher weiter zunehmen. lesen

IoT-Schnittstellen einfach verdrahten

Interface-Programmierung

IoT-Schnittstellen einfach verdrahten

Die Open-Source-Software Node-RED bietet einen geeigneten Baukasten, um per Datenflussprogrammierung die notwendigen Verbindungen zwischen IoT-Systemen zu schaffen. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44509091 / Definitionen)