Codebeispiele und detaillierte Interfacebeschreibung zu ARM Virtual Hardware

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 https://www.mikrocontroller.net/topic/526251 und https://www.mikrocontroller.net/topic/526505) 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)

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More