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