Die Auswahl des korrekten Echtzeitbetriebssystems hängt von vielen Faktoren ab: neben der Unterstützung des Ziel-Mikrocontrollers ist auch wichtig, dass die gewünschten Funktionen (z.B: USB-Stack, TCP/IP-Stack und GUI-Stack) zur Verfügung stehen. ThreadX von Express Logic – einst als rtos.com bekannt – war immer eine teure Premiumlösung. Microsoft kaufte den Anbieter vor einiger Zeit an, und verkauft das System nun als Azure RTOS. Unter https://github.com/azure-rtos/threadx/blob/master/LICENSED-HARDWARE.txt findet sich eine Liste von Systemen, bei denen die Nutzung kostenlos ist – besonders stechen die diversen Controller aus dem Hause STM hervor.
Die zur EmbeddedWorld vorgestellte und seit langer Zeit angekündigte Voll-Integration in CUBE konnte ich nicht mehr rechtzeitig testen – unter https://github.com/STMicroelectronics/x-cube-azrtos-h7 gibt es allerdings ein Repository mit fertigen Projektmappen, die teilweise durchaus fortgeschrittene Anwendungen wie die Simulation einer USB-Maus auf STM32H7 demonstrieren. Wer derartigen Code von Hand zu realisieren sucht, hat viel Arbeit. Übrigens findet sich unter http://www.ece.ualberta.ca/~cmpe490/documents/ghs/405/threadxug_g40c.pdf ein empfehlenswertes PDF; das die grundlegenden Kernel-APIs detailliert erklärt.
Wer STM – sei es aus Verfügbarkeits- oder aus Sanktionssicherheitsgründen – vermeiden möchte, bekommt von GigaDevice mit dem GD32450 eine Alternativplatine angeboten. Microsoft listet diese witzigerweise bereits als supported hardware, hat die Liste der lizenzierten MCUs aber noch nicht aktualisiert: es wäre vorstellbar, dass die Nutzung von Azure RTOS auf dem GigaDevice-Chip den Erwerb einer seperaten Lizenz von Microsoft voraussetzt.
Sei dem wie es sei: mit Azure RTOS steht ein neues Echtzeitbetriebssystem zur Verfügung, das sich gegenüber FreeRTOS vor allem durch seinen immensen Bibliotheksschatz unterscheidet. Sucht Ihr nach einem neuen System, und habt nichts gegen Microsoft, so spricht nichts gegen Versuche mit dem Neuling.