Embedded Software

Die Funktionen von elektronischen Baugruppen werden immer mehr durch die Software in Mikroprozessoren, Mikrocontrollern, Digitalen Signalprozessoren und sonstigen programmierbaren Bausteinen erledigt. Durch den stetigen Fortschritt bei der Integration von Schaltkreisen (es gilt das Mooresches Gesetz: Verdoppelung der Integrationsdichte alle 2 Jahre) und das Erreichen von höheren Taktfrequenzen wird die Software für diese “Embedded Systeme” gleichzeitig auch immer umfangreicher und komplexer.

Eigenschaften

Man bezeichnet die embedded (hardwarenahe) Software oft auch als Firmware, um sie von der Software für Applikationen auf einem PC abzugrenzen. In der folgenden Liste sind die wesentliche Eigenschaften und Unterschiede zur PC Software aufgeführt:

  • Enge Anpassung auf die Peripherie eines Mikrocontrollers und auf die zusätzlichen Bauteile, die mit dem Mikrocontroller verbunden sind.
  • Eine wichtige Eigenschaft ist das Echtzeitverhalten der embedded Software. Bestimmte Ereignisse müssen innerhalb einer festgelegten Zeit garantiert abgearbeitet werden bzw. bestimmte Aufgaben müssen innerhalb eines zugeteilten Zeitrasters erledigt werden.
  • Oft sind die Hardwareressourcen beschränkt, d.h. die embedded Software muss kompakt und speichersparend ausgelegt werden.
  • Verwendung mit oder ohne Betriebssystem. Im Gegensatz zur PC-Welt gibt es für embedded Software eine Vielzahl unterschiedlicher Betriebssysteme.
  • Die Benutzerschnittstelle kann beliebige Formen annehmen. Im einfachsten Fall kann dies z.B. eine Leuchtdiode zur Statusanzeige sein, aber grafische Benutzeroberflächen, wie man sie von Windows gewöhnt ist, sind genauso möglich.
  • Zuverlässigkeit, Fehlertoleranz und Robustheit sind weitere wesentliche Eigenschaften, um einen Dauerbetrieb unter extremen Bedingungen ohne Störung zu bestehen.
  • Kommunikation mit anderen Systemkomponenten über Busse, speziellen Schnittstellen und immer häufiger mit der PC-Welt (USB, Firewire, Ethernet, …).
  • Messen, Steuern, Regeln und Anzeige sind die Grundaufgaben von fast jeder embedded Software.
  • Zur Erstellung und Test von embedded Software gibt es viele spezielle Werkzeuge.

Unsere Stärken

  • Programmiersprachen C/C++, Java, C#
  • Programmierung von Mikrocontrollern der 8051- und ARM 32-Bit-Familie
  • Erfahrung mit Windows Embedded und Linux
  • Erfahrung mit den Anforderungen für Medizingeräte-Software (z.B. DIN EN 62304)