Azure RTOS – A brand new look for Express Logic’s ThreadX
Microsoft’s Azure RTOS is marketing the well-established ThreadX under a new licence model and name.
Instead of high licensing costs, the company is now opting for hardware licenses, which are included directly with the purchase of a microcontroller from selected chip manufacturers. In addition to Microchip and NXP, the widely used STMicroelectronics microcontrollers were also acquired for this purpose. For the embedded developer, this means that software modules from Azure RTOS may be used without restriction on licensed hardware.
CSA Engineering has already taken advantage of these new licensing conditions in several projects and successfully implemented Azure RTOS. In addition to ThreadX, Azure RTOS also boasts the following functionalities:
- FileX: Flash memory access (FAT 12/16/32 and exFAT)
- USBX: USB stack with different host/client classes
- NetX: IPv4/6 network stack (TLS and common application protocols in addition to TCP/IP)
- TraceX: Performance tracing of the individual threads
- GUIX: GUI framework for creating graphic elements and equipping them with functionalities (but replaced in the ST environment by the more powerful TouchGFX)
Reliable and tried-and-tested software modules are worth their weight in gold, especially in the embedded and security-relevant environment. Azure RTOS has already been widely used and certified. Certifications such as IEC 61508 SIL4, ISO 26262 ASIL D, EN 50128 SW-SIL4 or TÜV can be obtained for this purpose.
The Azure RTOS modules could be used, for instance, in an IoT device that records data. FileX allows this data to be stored on an SD card for further processing. NetX enables a web connection to exchange selected data with the cloud. Last but not least, USBX offers the functionality to operate additional peripherals via USB.
Within CSA, a chat application on a microcontroller was developed to demonstrate the application possibilities of Azure RTOS. This allows the user to send simple text messages in a chat between the host PC and the target (an STM32H735G development kit).
Specifically, a TCP server is started on the host, whereupon the target uses the network stack to connect to NetX. The target also requires a USB keyboard for text input, which is numbered and integrated by USBX as a USB device. The received and entered messages are transmitted between the individual threads using message queues. Other RTOS-relevant elements such as semaphores, mutexes, etc. are also provided by ThreadX and used in this example application.
One conceivable extension is the storage of configuration data, e.g. network configuration, on an SD card. FileX is a powerful module suitable for this purpose. After all, separation of configuration and program is also important in the embedded field. This gives you the flexibility to simply change and re-read parameters at runtime. We have already successfully implemented this approach in a customer project using Azure RTOS.
With Azure RTOS, Microsoft does not bring any new functionality, but makes the tried-and-tested ThreadX affordable and therefore attractive for commercial embedded applications.
At CSA Engineering, we see the countless possibilities offered by these software modules and are motivated to implement our customers’ ideas and applications with Azure RTOS.