Sicherheitsstandards definieren verschiedene Testphasen, die im Folgenden kurz beschrieben sind:
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.
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:
Die Tabelle vergleicht die Ausführungszeit auf verschiedenen Plattformen und listet die Geschwindigkeitssteigerung der Simulation im Vergleich zur Zielhardware auf.
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 % |
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.