Windows on Arm kann diverse Vorteile bieten, bringt aber auch Herausforderungen in der Entwicklung auf solchen Systemen mit sich. Umso wichtiger ist es, die Unterschiede der einzelnen Windows-Optionen zu kennen und mit einem passenden Entwicklungskit zu arbeiten.
Ein Großteil der bestehenden Infrastruktur basiert auf Windows in Anwendungen wie der industriellen Automatisierung und dem Gesundheitswesen. Für die Entwicklung stromsparender, kostengünstiger Edge-Geräte für diese Bereiche ist »Windows on Arm« eine Möglichkeit, da es die Windows-Plattform auf die effiziente Arm-Architektur bringt.
Eine große Herausforderung bei der Entwicklung auf Systemen mit Windows on Arm war jedoch der Mangel an geeigneten Entwicklungskits. Obwohl das Betriebssystem seit Langem auf verschiedenen IoT- und Embedded-Computersystemen auf Board-Ebene verfügbar ist, erfordern diese Angebote in der Regel eine umfangreiche Hardware-Entwicklung, bevor mit der Codierung begonnen werden kann.
Es braucht eine Plattform im Stil eines Box-PC, auf dem Windows on Arm vorinstalliert ist und der alle Komponenten enthält, die für die Anwendungsentwicklung erforderlich sind. Dies würde die Einrichtungszeit und -komplexität verringern und es ermöglichen, sich auf die Entwicklung und das Testen von Anwendungen zu konzentrieren, ohne sich um die anfängliche Software-Installation und -konfiguration kümmern zu müssen.
Bei der Wahl des Betriebssystems gibt es viele Möglichkeiten, darunter Linux und verschiedene Echtzeit-Betriebssysteme (RTOS). Ein häufiger Grund für die Wahl von Windows gegenüber diesen Alternativen ist das umfangreiche Angebot an Software und Bibliotheken. Dies ist ein wichtiger Aspekt für Umgebungen mit einer älteren Windows-Infrastruktur.
Windows bietet außerdem ein ausgereiftes Entwicklungssystem mit umfassenden Tools und APIs wie Visual Studio und dem .NET-Framework. Programmierer können aus einer breiten Palette von Programmiersprachen wie C++, Python und Node.js wählen und auf verschiedene Microsoft-Azure-Dienste zugreifen, um schnell anspruchsvolle Funktionen zu entwickeln.
Linux hat einige dieser Vorteile, aber die Konfiguration und Wartung eines Linux-Build kann einen erheblichen Aufwand erfordern. Außerdem können die Linux-Distributionen sehr unterschiedlich sein, was zu Herausforderungen im Entwicklungsprozess führt. Im Gegensatz zu Windows und Linux steht bei Echtzeit-Betriebssystemen die Effizienz im Vordergrund. Ihnen fehlen in der Regel Funktionen wie reichhaltige grafische Benutzeroberflächen (GUIs) und das breite Ökosystem, das voll ausgestattete Betriebssysteme bieten.
Windows bietet also manche Vorteile. Doch es gibt es Windows in vielen Formen, weshalb es wichtig ist, die Unterschiede zu kennen. Microsoft bietet mehrere Varianten von Windows an. Die Tabelle zeigt einige der Hauptunterschiede zwischen den verschiedenen Ausgaben. Für das Windows-on-Arm-Entwicklungskit »EPC-R3720IQ-AWA12« wählte Advantech Windows IoT Enterprise. Einer der Vorteile dieser Windows-Version ist die Kompatibilität mit der Touchpanel-freundlichen Universal Windows Platform (UWP) und herkömmlichen Win32-Anwendungen. Diese Flexibilität ermöglicht es, das am besten geeignete App-Modell zu wählen.
Windows IoT Enterprise bietet außerdem erweiterte Sicherheitsfunktionen, die die Zuverlässigkeit verbessern:
Das Betriebssystem bietet außerdem unternehmenstaugliche Verwaltungstools, die einen zentralen Support für die bereitgestellten Geräte ermöglichen. Diese Tools vereinfachen die Wartung und Sicherheit von groß angelegten IoT-Implementierungen.
Viele dieser Funktionen werden von dem kompakteren Windows IoT Core nicht unterstützt. Diese Ausgabe ist für leichte Einzweckgeräte mit begrenzten Ressourcen gedacht. Es verzichtet auf Funktionen wie eine grafische Benutzeroberfläche und Unterstützung für herkömmliche Win32-Anwendungen, wodurch es sich besser als Begleitbetriebssystem für komplexe Geräte eignet.
Umgekehrt bietet das standardmäßige Windows Pro einen umfangreichen Funktionsumfang, kann aber nicht für IoT-Bereitstellungen angepasst werden. Es ist auch nicht mit LTSC-Unterstützung für langlebige Geräte verfügbar.
In der Vergangenheit war das Windows-Betriebssystem an die x86-Architektur gebunden. Heute läuft es auch auf Arm-Prozessoren, was neue Möglichkeiten eröffnet.
Der Hauptvorteil von Windows on Arm ist die Effizienz. Arm-Prozessoren sind für ihren geringen Stromverbrauch bekannt und eignen sich daher gut für batteriebetriebene Geräte und Anwendungen, bei denen das Wärmemanagement eine Rolle spielt. Arm-basierte Systeme zeichnen sich außerdem durch ihre Kosteneffizienz aus, was sie zu einer Option für groß angelegte IoT-Implementierungen macht.
Einer der Nachteile von Windows on Arm war der Mangel an einsatzbereiter Hardware. Das EPC-R3720IQ-AWA12 liefert daher einen Box-PC mit vorinstalliertem Windows 10 IoT. Das Entwicklungskit ist in einem robusten, 174 mm × 108 mm × 25 mm großen Gehäuse untergebracht. Dieses Gehäuse ist mit Halterungen ausgestattet und kann auf Wunsch auch im Feld eingesetzt werden.
Das Herzstück des Entwicklungskits ist das SoC »MIMX8ML8DVNLZAB« von NXP Semiconductors, das auf einem Quad-Core-Arm-Cortex-A53-Prozessor basiert, der mit 1,8 GHz läuft (auf dem EPC-R3720IQ-AWA12 läuft er mit 1,6 GHz). Das SoC verfügt über eine NPU mit 2,3 TOPS und eignet sich damit für künstliche Intelligenz und maschinelles Lernen am Edge.
Das Entwicklungskit verfügt über 6 GB Arbeitsspeicher, 16 GB Speicherplatz und Erweiterungsmöglichkeiten über Steckplätze für Mini-PCIe, M.2, Micro-SD und Nano-SIM. Was die Vernetzung betrifft, so bietet das Entwicklungskit zwei Gigabit-Ethernet-Anschlüsse (GbE), einen USB-2.0-Anschluss, einen USB-3.2-Gen-1-Anschluss, einen HDMI-Anschluss und einen seriellen Anschluss, der CAN FD unterstützt.
Die Einrichtung des Entwicklungskits EPC-R3720IQ-AWA12 ist ein unkomplizierter Prozess. In den folgenden Punkten werden die wichtigsten Schritte erläutert, beginnend mit der Grundeinstellung:
1) Ein Monitor, eine Tastatur und ein Netzwerk sollten über die HDMI-, USB- beziehungsweise Ethernet-Anschlüsse angeschlossen werden.
2) Das Entwicklungskit führt beim ersten Start automatisch den Setup-Prozess für Windows 10 IoT aus. Sobald dies abgeschlossen ist, wird die Windows-Desktop-Umgebung angezeigt.
3) Dann muss Visual Studio von der Microsoft-Website heruntergeladen und installiert werden, um die Entwicklungsumgebung einzurichten. Während der Installation müssen die Komponenten ausgewählt werden, die für die Entwicklung von Windows-IoT-Anwendungen und anderen erforderlichen Workloads wie .NET oder UWP erforderlich sind.
4) Alle erforderlichen Software-Entwicklungskits (SDKs) und Laufzeiten sollten installiert sein. Wenn zum Beispiel .NET 6 oder .NET 7 benötigt wird, sollten die entsprechenden Laufzeitversionen vom Microsoft-Entwicklerportal oder über das Installationsprogramm von Visual Studio heruntergeladen werden.
5) Nach der Installation der erforderlichen Tools sollte Visual Studio für die Windows-IoT-Entwicklung konfiguriert werden, um sicherzustellen, dass die richtigen Versionen des Windows SDK und der Tools installiert sind.
Je nach den Anforderungen der Anwendung können zusätzliche Konfigurationen erforderlich sein:
Nun kann mit der Anwendungsentwicklung und -bereitstellung fortgefahren werden. Die Entwicklung kann durch Erstellen eines neuen Projekts oder Öffnen eines bestehenden Projekts in Visual Studio begonnen werden. Anwendungen können direkt auf dem Gerät entwickelt, ausgeführt und getestet werden.
Wenn Anwendungen stattdessen von einem Entwicklungs-PC aus debugged werden sollen, sollte Remote-Debugging eingerichtet werden. Dazu müssen die Remote-Debugging-Tools sowohl auf dem Entwicklungskit als auch auf dem PC konfiguriert werden.
Windows on Arm bietet viele Vorteile für komplexe IoT-Geräte. Mit dem Entwicklungskit EPC-R3720IQ-AWA12 lassen sich Anwendungen dafür schneller erstellen und die Hardware lässt sich in einigen Fällen auch direkt einsetzen. Der Einstieg in das Entwicklungskit ist ein einfacher Prozess, der es ermöglicht, die Anwendungsentwicklung mit minimaler Einrichtung zu beginnen.