Hilfe bei Lieferketten-Problemen

Virtualisierung und Fernüberwachung

8. November 2022, 9:30 Uhr | Von Mohammed Billoo
Electronic Design Automation for Semiconductors and Central Processing Units - Conceptual 3D Illustration
© ArtemisDiana – stock.adobe.com

Mit der Emulation von Hardware und der Virtualisierung lassen sich Applikationen entwickeln und testen, ohne dass der Software-Entwickler die Hardware physisch vor sich hat. So kann er seine Arbeit machen – unabhängig von der Verfügbarkeit von Mikrocontrollern und Entwicklungsmodulen.

Eines der größten Probleme, mit denen die Hersteller von IoT-Produkten heute konfrontiert sind, ist die mangelnde Verfügbarkeit von Hardware, denn die derzeitigen Lieferketten-Engpässe machen die Herstellung bestehender Produkte ebenso schwierig wie die Entwicklung neuer. Zum Beispiel hat die Beschaffung von elektronischen Bauelementen, Tablet-PCs und neuen Fahrzeugen die Entwicklung für die Telematik-Anbieter schwierig, wenn nicht gar unmöglich gemacht [1].

Laut Gartner haben alle Unternehmen, die auf Mikrochips und Mikroprozessoren angewiesen sind, inzwischen mit Restriktionen zu kämpfen – sei es im laufenden Betrieb oder bei der Entwicklung neuer Produkte [2]. Ein Blick auf die Verfügbarkeit der verschiedenen Modelle des Raspberry Pi bei Digi-Key zeigt beispielsweise, dass dieses Produkt derzeit nicht zu beschaffen ist (Bild 1).

Anbieter zum Thema

zu Matchmaker+
 MAB Labs Embedded Solutions
Bild 1: Die Verfügbarkeit von Raspberry Pi Development Kits – Stand bei Redaktionsschluss
© MAB Labs Embedded Solutions

Ähnlich ist die Lage für die Verfügbarkeit des Jetson Nano Developer Kit bei Arrow. Dem Interessenten werden überwiegend unbekannte Lieferzeiten angezeigt (Bild 2). Ein Mangel an Mikrocontrollern und Mikroprozessoren erschwert naturgemäß die Entwicklung neuer Produkte.

Fehlende Hardware für den Test der Software

Für die Entwickler von Embedded-Software ist es infolge der Lieferketten-Engpässe schwierig, ihre Software-Implementierungen zu testen. Hier bieten sich die Virtualisierung und die Hardwareemulation als Alternativen an, um dieses Entwicklungsproblem zu entschärfen. QEMU etwa ist eine populäre Plattform, mit der sich Embedded-Software ohne spezielle Hardware testen und evaluieren lässt. Sie läuft auf jedem x86-basierten PC (Intel oder AMD) und kann Instruktionen von anderen Prozessoren emulieren, z. B. ARM. Als beispielsweise die Linux-Community die Unterstützung von RISC-V durch den Kernel einführte, bestand ihre erste Maßnahme darin, in QEMU die Unterstützung für RISC-V einzubauen. Darüber hinaus unterstützt QEMU populäre Mikrocontroller-Entwicklungsmodule.

MAB Labs Embedded Solutions
Bild 2: Mangel herrscht auch bei Jetson Nano Development Kits – Stand bei Redaktionsschluss.
© MAB Labs Embedded Solutions

Abgesehen von der schnelleren Entwicklung erleichtert Virtualisierung auch das Testen. Hierbei muss die für eine spezielle Prüfumgebung notwendige Hardware nicht beschafft werden, was – wie die Beispiele in den Bildern 1 und 2 zeigen – ja auch beinahe unmöglich wäre. Stattdessen können Anbieter von Prozessormodulen die nötigen Virtualisierungstechniken zu einem Paket schnüren, damit Kunden ihre sofort Software erproben können. Dies spart den Kunden Zeit und Geld – auch dank der schnelleren Rückmeldung von Fehlern.

Software für die Virtualisierung von Hardware

Die DevAlert Sandbox [3] von Percepio beispielsweise enthält eine Demo-Applikation, die am Beispiel der Emulation eines Aufzugssteuerungssystems mit IoT-Anbindung die Virtualisierung verdeutlicht. Sie erkennt und meldet abnormales Softwareverhalten an den cloudbasierten DevAlert-Service, zusammen mit detaillierten Traces auf Betriebssystemebene. Die Applikation ist für ein für ein STM32 F4 Discovery Board [4] vorgesehen.

Obwohl die DevAlert Sandbox im Wesentlichen dazu dient, die Fähigkeiten von DevAlert zu verdeutlichen, sind doch alle notwendigen Tools enthalten, die es Entwicklern ermöglichen, eigene FreeRTOS-basierte Applikationen mit Event-Überwachung zu realisieren. Insbesondere gehören die nötigen Skripte und Dienste zum Lieferumfang, mit denen sich die überwachten kritischen Ereignisse erkennen und an den DevAlert Cloud Service melden lassen. Die virtuelle Maschine (VM) enthält zusätzlich QEMU [5] zum Emulieren des STM32 F4 Discovery Boards, jedoch kann sie auch zur Emulation anderer Mikrocontroller-Entwicklungsmodule verwendet werden.

MAB Labs Embedded Solutions
Bild 3: Ansicht des in der DevAlert Sandbox von Percepio verwendeten STM32 F4 Discovery Board
© MAB Labs Embedded Solutions

Eine einfache Applikation, die beispielsweise das Drücken eines Tasters erkennen kann und daraufhin eine LED aufleuchten lässt, kann mit der DevAlert Sandbox problemlos entwickelt und ausgeführt werden. Nach dem Kompilieren der FreeRTOS-basierten Applikation kann diese Applikation mit dem folgenden Aufruf in QEMU gestartet werden:

$> ~/.local/xPacks/@xpack-dev-tools/qemu-arm/7.0.0-1.1/.content/bin/qemu-system-gnuarmeclipse -board STM32F4-Discovery --image Debug/devalert-qemu-freertos-test.elf

Nach Ausführung des obigen Befehls wird in der Sandbox VM ein Bild des Entwicklungsmoduls als UI angezeigt (Bild 3) und nach Betätigen des blauen Tasters würde die LED aufleuchten. Nach dem Einloggen in das DevAlert Back End lässt sich außerdem feststellen, dass die mit den Tastenbetätigungen einhergehenden Ereignisse wie vorgesehen registriert wurden (Bild 4).

Percepio
Bild 4: Im DevAlert Cloud Back End können Entwickler die erfassten Ereignisse einsehen.
© Percepio

Software ohne Hardware entwickeln

Die DevAlert Sandbox von Percepio zeigt anschaulich, wie sich Virtualisierung und Hardwareemulation zu einem organischen Paket schnüren lassen. Damit können Edge-/IoT-Systeme entwickelt werden, ohne auf die Verfügbarkeit der entsprechenden Hardware angewiesen zu sein. Das Resultat ist eine zügigere Iteration von Applikationen und ein qualitativ hochwertigeres Endprodukt.

 

Der Autor

Mohammed Billoo
Mohammed Billoo, Gründer von MAB Labs Embedded Solutions
© MAB Labs Embedded Solutions

Mohammed Billoo

ist Gründer von MAB Labs Embedded Solutions. Er verfügt über mehr als 15 Jahre Erfahrung in der Entwicklung, der Implementierung und dem Testen von Embedded Software, wobei sein Schwerpunkt auf Embedded Linux liegt. Dazu gehören die Entwicklung benutzerdefinierter Module sowie das Schreiben benutzerdefinierter Gerätetreiber und von Programmen.

Billoo trägt auch zum Linux-Kernel bei und beteiligt sich aktiv an zahlreichen Open-Source-Projekten. Er unterrichtet zudem als außerordentlicher Professor für Elektrotechnik an der Cooper Union for the Advancement of Science and Art, wo er Kurse in Digital Logic Design, Computer Architecture und Advanced Computer Architecture gibt. Billoo hat Elektrotechnik an der gleichen Institution studiert und das Studium mit dem Bachelor und Master abgeschlossen.


  1. Virtualisierung und Fernüberwachung
  2. Literatur

Verwandte Artikel

Percepio AB, Digi-Key Corporation, Arrow Central Europe GmbH