Die meisten Embedded-Anwendungen werden heute noch auf Desktop-Computern erstellt. Das hat viele Gründe. Beispielsweise hängt der Validierungsprozess stark von der Zielhardware ab. Für andere Anwendungen ist Cloud Computing gut etabliert.
Wir stellen einen Cloud-basierten CI-Workflow (Continuous Integration) für Embedded-Projekte vor, der modellbasierte Simulation verwendet.
Auf einem Cloud-Dienst wie GitHub benutzt man normalerweise diese Infrastruktur:
Cloud-basiertes kontinuierliches Testen
Bei der Entwicklung von Embedded-Software werden traditionell lokale IT-Infrastrukturen und Desktop-Computer verwendet, die eine Verbindung zur Testhardware herstellen. Cloud-Technologien haben das Potenzial, die Entwicklungsabläufe durch kontinuierliche Tests zu verbessern, bei denen ein Cloud-Server eine virtuelle Maschine oder einen Container bereitstellt, der eine Tool-Umgebung mit Simulationsmodellen enthält. Zum Beispiel erfordern Standards bei Projekten der funktionalen Sicherheit einen abgestuften Testprozess, der sich aus folgenden Schritten zusammensetzt:
Bei Embedded-Anwendungen werden diese Testarten häufig ignoriert, obwohl die Vorteile (die auch für nicht-sicherheitsrelevante Anwendungen gelten) gut verstanden werden. Dafür gibt es einige gute Gründe, da zum Beispiel das Testen von Systemen einer Embedded-Anwendung normalerweise den Zugriff auf die Zielhardware erfordert.
Arm Fixed Virtual Platforms (FVP) bieten eine vollständige Simulation eines Arm-Systems, einschließlich Prozessor, Speicher und Peripheriegeräte. Diese FVPs sind konfigurierbar und bieten eine "Programmiereransicht", die Ihnen ein umfassendes Modell zum Debuggen und Testen Ihrer Software bietet. Diese FVPs sind ähnlich schnell wie reale Hardware und eignen sich ideal zum Ausführen von Komponententests. Bei Verwendung von Testdatenschnittstellen kann man damit auch Integrationstests fahren. FVPs werden mit demselben Prozess wie die tatsächliche Prozessorimplementierung verifiziert und stimmen daher mit dem logischen Verhalten realer Geräte überein.
Entwicklungsteams zögern jedoch, die anfänglichen Anstrengungen zum Aufbau eines Workflows für die Continuous Integration (CI) zu unternehmen, obwohl die langfristigen Vorteile unbestritten sind:
In einem Blog wird anhand zweier Beispiele erklärt, wie man mit GitHub Actions und FVPs schnell zu relevanten Ergebnissen kommt: Cloud infrastructure for continuous integration tests