Azure RTOS - Express Logic's ThreadX in neuem Gewand
Microsoft’s Azure RTOS vermarktet das vielseits bewährte ThreadX unter neuem Lizenzmodel und Namen.
Statt hoher Lizenz-Kosten setzt man neu auf Hardware-Lizenzen, die direkt beim Kauf eines Microcontrollers von ausgewählten Chip-Herstellern inbegriffen ist. Nebst Microchip und NXP konnten hierfür auch die weit verbreiteten Microcontroller von STMicroelectronics gewonnen werden. Für den Embedded-Entwickler heisst das, dass Software-Module von Azure RTOS auf lizenzierter Hardware uneingeschränkt eingesetzt werden dürfen.
CSA Engineering konnte sich diese neuen Lizenz-Bedingungen bereits in einigen Projekten zunutze machen und Azure RTOS erfolgreich einsetzen. Nebst ThreadX trumpft Azure RTOS zusätzlich mit folgenden Funktionalitäten auf:
- FileX: Flash-Speicherzugriff (FAT 12/16/32 und exFAT)
- USBX: USB-Stack mit verschiedenen Host-/Client-Klassen
- NetX: Netzwerk-Stack IPv4/6 (neben TCP/IP auch TLS und gängige Applikationsporotokolle)
- TraceX: Performance-Tracing der einzelnen Threads
- GUIX: GUI-Framework um Grafik-Elemente zu erstellen und mit Funktionalitäten auszustatten (wird im ST-Environment aber durch das performantere TouchGFX ersetzt)
Gerade im embedded und speziell auch im sicherheitsrelevanten Umfeld sind zuverlässige und erprobte Software-Module Gold wert. Azure RTOS wurde hier schon breit eingesetzt und zertifiziert. Zertifizierungen, wie beispielsweise IEC 61508 SIL4, ISO 26262 ASIL D, EN 50128 SW-SIL4 oder TÜV, können hierzu erworben werden.
Den Einsatz der Azure RTOS Module kann man sich beispielsweise in einem IOT-Device vorstellen, welches Daten aufnimmt. Mithilfe von FileX können diese Daten auf einer SD-Karte für weitere Verarbeitung gespeichert werden. NetX ermöglicht eine Web-Anbindung, um ausgewählte Daten mit der Cloud auszutauschen. Zu guter Letzt bietet USBX die Funktionalität, weitere Peripherie über USB zu betreiben.
CSA-intern wurde als Show-Off der Anwendungsmöglichkeiten für Azure RTOS eine Chat-Applikation auf einem Microcontroller entwickelt. Diese ermöglicht dem User simple Text-Nachrichten in einem Chat zwischen Host-PC und Target (einem STM32H735G Development Kit) hin und her zu senden.
Konkret wird auf dem Host ein TCP-Server gestartet, worauf sich das Target mithilfe des Netzwerk-Stacks in NetX verbindet. Zudem benötigt das Target eine USB-Tastatur für die Texteingabe, welche von USBX als USB-Device nummeriert und eingebunden wird. Die empfangenen sowie eingegebenen Nachrichten werden zwischen den einzelnen Threads mittels Message-Queues übermittelt. Auch weitere RTOS-relevante Elemente wie Semaphoren, Mutexe, usw. werden von ThreadX zur Verfügung gestellt und kommen in dieser Beispiel-Anwendung zum Einsatz.
Eine denkbare Erweiterung ist das Speichern von Konfigurationsdaten, z.B. Netzwerkkonfiguration, auf einer SD-Karte. Dazu steht mit FileX ein leistungsfähiges Modul bereit. Denn auch im Embedded Bereich ist eine Trennung von Konfiguration und Programm wichtig. Somit gewinnt man die Flexibilität, Parameter einfach zur Laufzeit zu ändern und neu einzulesen. Dieser Ansatz haben wir mit Azure RTOS bereits erfolgreich in einem Kundenprojekt umgesetzt.
Mit Azure RTOS bringt Microsoft zwar keine neue Funktionalität, macht das allseits erprobte ThreadX für kommerzielle Embedded-Anwendungen jedoch erschwinglich und somit attraktiv.
Wir bei CSA Engineering sehen die unzähligen Möglichkeiten, die diese Software-Module bieten und sind motiviert, die Ideen und Anwendungen unserer Kunden mit Azure RTOS umzusetzen.