IoT-Applikationen

Einfach entwickeln in der Cloud

30. September 2021, 10:00 Uhr | Von Reinhard Keil und Christopher Seidl
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Kontinuierliches Testen in der Cloud

Sicherheitsstandards definieren verschiedene Testphasen, die im Folgenden kurz beschrieben sind:

  • Unit-Tests: Code wird hauptsächlich auf Funktionsebene unter Verwenden eines Test-Frameworks getestet.
  • Integrationstests: kombinieren mehrere Komponenten und überprüfen die Schnittstellen zwischen den Komponenten.
  • Systemtests: Das komplette System wird anhand der Anforderungen getestet.

Bei Embedded-Applikationen werden die Testphasen häufig ignoriert, obwohl die Vorteile – die ebenso für nicht sicherheitskritische Anwendungen gelten – bekannt sind. Es gibt dafür einige gute Gründe, z.B. erfordert das Testen von Systemen normalerweise eine Zielhardware.

Arms »Fixed Virtual Platforms (FVP)« bieten jedoch eine vollständige Simulation eines Arm-Systems, einschließlich Prozessor, Speicher und Peripherie. Sie sind konfigurierbar und bieten eine »Programmiersicht«, die ein umfassendes Modell zum Debuggen und Testen von Software bietet. Zudem laufen sie mit Geschwindigkeiten, die mit echter Hardware vergleichbar sind, und eignen sich für das Durchführen von Unit- und Integrations-Tests. Arms Simulationsmodelle werden mit dem gleichen Verfahren wie die eigentliche Prozessorimplementierung verifiziert und entsprechen somit dem logischen Verhalten realer Prozessoren.

Dennoch zögern Entwicklerteams, den anfänglichen Aufwand für das Einrichten von Continuous-Integration-Systemen (CI) aufzubringen, obwohl die langfristigen Vorteile unbestritten sind, wie in Bild 2 gezeigt. Aus dem Grund hat Arm eine unmittelbar verwendbare CI-Plattform veröffentlicht, die das Entwickeln und Validieren von Cortex-M55-Software unterstützt. erklärt, wie man Tests lokal auf einem Entwicklungsrechner durchführt sowie als CI-Flow in cloudbasierte Versionskontrollsysteme wie GitHub integriert.

passend zum Thema

Arm
Bild 2: Exemplarische Komponenten eines IoT-Endgeräts
© Arm

Der Cloud-Ansatz ermöglicht das Skalieren von Tests mit mehreren Instanzen, was zu einer erheblich höheren Geschwindigkeit von Regressionstests führt. Für Komponenten- oder Integrationstests, die schnell auf kleinen Codesätzen auszuführen sind, bieten virtuelle Plattformen Vorteile gegenüber Hardware:

  • Geschwindigkeit: Virtuelle Plattformen benötigen keine Flash Download, was bei kleinen und schnellen Unit Tests Zeit spart.
  • Skalieren: Virtuelle Plattformen sind skalierbar, um viele Tests parallel auszuführen.
  • Wartung: Virtuelle Plattformen überhitzen nicht, verschleißen nicht und benötigen keinen Platz oder andere Ressourcen.
  • Upgrades: Virtuelle Plattformen sind anpassbar und neu konfigurierbar, um entsprechende Änderungen an der zugrunde liegenden Hardware, die sich noch in der Entwicklung befindet, nachzubilden.

Die Tabelle vergleicht die Ausführungszeit auf verschiedenen Plattformen und listet die Geschwindigkeitssteigerung der Simulation im Vergleich zur Zielhardware auf.

Over-the-Air-Programmierung

Over-the-Air Updates sind bereits auf vielen Geräten verfügbar, zunehmend auch auf kleinen Mikrocontrollersystemen. Hierbei beinhaltet zum Beispiel eine erste Firmware lediglich ein System mit minimalen Funktionen. In späteren Schritten können Anwender die Gerätefunktion über OTA erweitern und die Produktgeneration somit an neue Marktanforderungen anpassen, um das Produkt wettbewerbsfähig zu halten. Ein solcher stufenweiser Software-Entwicklungsansatz verkürzt die anfängliche Vorlaufzeit, vermeidet kostspieliges manuelles Warten und kann zu neuen Service-Geschäftsmodellen führen.

Bild 3 zeigt eine vereinfachte Ansicht der Software-Komponenten eines IoT-Endgeräts, das die »Trusted Firmware M« (TF-M) und ein neuronales Netzwerk mit ML-Modelldaten enthält. TF-M implementiert eine sichere Laufzeitumgebung, die die TrustZone-Technik der Armv8-M-Architektur verwendet. TrustZone ist Teil der Cortex-M23-, Cortex-M33- und Cortex-M55-Prozessoren. TF-M ist die Referenzimplementierung der »Platform Security Architecture« (PSA) und wird im sicheren Bereich des Prozessors ausgeführt. Sie bietet sichere Dienste für den nicht sicheren Bereich, in dem der Prozessor die eigentliche Benutzerapplikation zusammen mit Internet- und Cloud-Konnektivität ausführt.

Testplattform Zeit (s) Geschwindigkeitssteigerung
MPS2 Entwicklungsboard (Zielhardware) 488 -
FVP Simulation (Einzelinstanz) 259 88 %
FVP Simulation (Zwei parallele Instanzen) 160 205 %

 

Arm
Bild 3: Exemplarische Komponenten eines IoT-Endgeräts.
© Arm

Beim Aktualisieren lädt der Cloud Connector die neue Firmware herunter und speichert sie über den TF-M-Storage-Dienst zwischen. Beim nächsten Neustart des Systems überprüft Secure Boot die digitale Signatur der Firmware und aktualisiert den Gerätespeicher. Ein Software Stack wie in Bild 3 gezeigt könnte mehrere Speicherabbilder beinhalten, zum Beispiel sichere Firmware für den TF-M-Teil, ungesicherte Firmware mit der Benutzeranwendung und ML-Modelldaten für den Einsatz eines neuen Algorithmus.

Der Firmware-Update-Prozess auf solchen Geräten erfolgt in folgenden Schritten:

1. Die verifizierte Firmware hat alle Tests wie im vorherigen Abschnitt erläutert bestanden und erhält eine digitale Signatur.
2. Das Firmware Update ist in der Cloud-Infrastruktur gespeichert.
3. Ein Cloud-Update-Dienst stellt IoT-Geräten, die im Feld installiert sind, die neue Firmware bereit.
4. Der Cloud-Aktualisierungsdienst protokolliert den IoT-Update-Prozess.
5. Nach dem Validieren installiert das IoT-Gerät das neue Firmware Update im IoT-Endgerät.

Programmieren mit OTA ist ein Ansatz, der einen Cloud-Dienst erfordert. Es ist zu beachten, dass die Schritte 2 bis 4 von der Cloud-Infrastruktur unterstützt werden müssen.


  1. Einfach entwickeln in der Cloud
  2. Kontinuierliches Testen in der Cloud
  3. Datenanalyse und KI

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ARM Germany GmbH

Weitere Artikel zu IoT / IIoT / Industrie 4.0

Weitere Artikel zu Industrie-Computer / Embedded PC

Weitere Artikel zu Betriebssysteme

Weitere Artikel zu Echtzeit-/Embedded Software