Im Rahmen eines Webinars verrät ARM mehr über die im Rahmen des DevSummit vorgestellte Virtual Hardware-Technologie, die Entwicklern von Embeddedsystemen die Nutzung moderner Programmiertechniken ermöglichen soll. Nun gibt es Codebeispiele und eine detaillierte Besprechung der Interfaces.
Worum geht es hier?
Der Arm DevSummit 2021 (siehe Beitrag "Arm DevSummit 2021 – Tag 1: Developers, Developers, Developers für Hardware" und Beitrag "ARM DevSummit 2021 - Schlussbetrachtung") stand im Zeichen moderner Entwicklungstechniken, die im Embeddedbereich Einzug halten sollten. Durch Hardwarevirtualisierung sollen Unit Tests leichter werden – dies ist eine Grundvoraussetzung für Prozesse wie Continuous Integration. Nach Ansicht des Autors ist ARM’s extreme Forcierung dieser “neuartigen Entwicklungsmethoden” übrigens eine Reaktion auf immer stärkere bzw. bessere RISC-V-Controller. Wer auf Workstation, Web 2.0 oder Smartphone aufgewachsen ist, codiert ungern ohne CI und Unit Tests – stehen derartige Komfortfunktionen nur im ARM-Ökosystem zur Verfügung, so sind Entwickler bei Nutzung von ARM-Technologien weniger quengelig.
Drei Interfaces verbinden VM und simulierte Hardware
Zwischen dem virtuellen ARM-Kern und der vom Entwickler bereitzustellenden Hardware stellt ARM Virtual Hardware drei Interfaces zur Verfügung. Kandidat Nummero eins ist VIO – es kümmert sich um die Simulation “boole’scher Werte” wie einer LED. Über VSI dürfen bis zu acht Datenströme angeliefert werden (Stichwort Training von ML), während das VSocket-Interface für die Internetverbindung sorgt.
(Bildquelle: ARM)
Virtualisierung von LEDs mit TKInter
ARM demonstrierte die Möglichkeiten der virtuellen Hardware durch ein Programmbeispiel, das ein auf der Python-GUI-Bibliothek TKInter basierendes Benutzerinterface zur Steuerung von drei Leuchtdioden einsetzte.
(Bildquelle: ARM)
Auf Seiten des C-Programms kommt dabei ein Interfaceobjekt zum Einsatz, das – wie in der Abbildung gezeigt – für die Kommunikation mit dem Python-Teil sorgt.
(Bildquelle: ARM)
Im Fall der LED-Ansteuerung finden sich im Code Behind zwei Methoden, die für die Bereitstellung der Daten sorgen. ARM spendiert laut der unter https://arm-software.github.io/VHT/main/simulation/html/group__arm__vio__py.html bereitstehenden Dokumentation dabei zwei Methodengruppen: neben dem Austausch von Signalen ist es auch möglich, beliebige Integerwerte zwischen virtueller Hardware und dem Python-Testharrnisch auszutauschen.
(Bildquelle: ARM)
Simulation von AI-Prozessen
Die Paradeanwendung von ARM Virtual Hardware ist das Füttern von AI-Algorithmen mit wiederholbaren Testdaten. Ein gutes Beispiel dafür wäre ein Spracherkennungsverfahren, das – wie in der Abbildung gezeigt – immer die selben Informationen angeliefert bekommt.
(Bildquelle: ARM)
Geht es offline?
ARM bewirbt die hauseigene Virtual Hardware ausschliesslich im Zusammenspiel mit AWS, und offeriert sogar kostenlose Rechenleistung. Mehrfache Nachfragen des Autors wurden ausweichend beantwortet – am Ende wurde davon gesprochen, dass “ein Teil des Systems Teil von MDK ist”. Eine klare Aussage pro Offline-Nutzung war allerdings nicht zu erhalten.
Mehr erfahren
Zu guter Letzt spendierte ARM die in der Abbildung gezeigte Folie, wo sich unter Anderem eine E-Mail-Adresse zur Einholung weiterer Informationen zum Thema findet. Auch das hier in Screenshots gezeigte LED-Beispiel auf Basis von TKInter muss – zum Zeitpunkt der Verfassung dieses Artikels – dort beantragt werden.
(Bildquelle: ARM)