Although Azure RTOS may be relatively new to Microsoft, its codebase has deep roots in the embedded software space. At the heart of Azure RTOS is ThreadX, a real-time kernel that has enabled the development of an incredible number of products (at one time somewhat famously tracked by a giant counter on the Web site of the kernel’s original developer, Express Logic). Over the course of its history, ThreadX has evolved considerably, and, in its current incarnation, is a highly refined and optimized solution for a wide range of embedded and IoT applications.
Among the features that differentiate ThreadX from its competitors are its many safety-critical credentials. The kernel, along with other Azure RTOS components, has undergone rigorous testing to pave the way for its use in a number of different types of safety-critical applications. Azure RTOS certification “deliverables,” which combine the results of the aforementioned testing with other evidence of suitability for safety-critical usage, are available from Microsoft for multiple widely-adopted standards, including IEC 61508, IEC 62304, ISO 26262, and EN 50128. Certification makes Azure RTOS a logical choice for developers whose projects must adhere to these standards, but it benefits the RTOS’s users in general by minimizing quality and reliability issues, substantially reducing the likelihood of the sort of lengthy debugging sessions that such issues can otherwise trigger.
Complementing the ThreadX kernel in the Azure RTOS codebase is the highly capable NetX Duo TCP/IP stack. This IPv4/IPv6 stack has been optimized to deliver incredible performance in IoT applications, even in scenarios where CPU cycles for networking tasks are scarce. As the outcome of development processes heavily focused on security, however, NetX Duo is more than just a fast and efficient TCP/IP implementation. The stack offers a foundation for safe and secure network application code, with support for security at both the IP (IPsec) and socket (TLS and DTLS) layers.
As indicated below, the NetX Duo stack, paired with Silicon Labs’ WF200 Wi-Fi transceiver, gives developers an option for easily adding TCP/IP communication to projects based on EFR32 Wireless SoCs. Not surprisingly, the stack includes all of the application layer protocols—like MQTT—needed to connect to the Azure cloud. The official Azure RTOS GitHub repo includes a getting-started example and tutorial that walks through the basic steps required to test Azure connectivity on an EFR32.
Although the Azure RTOS source code is available on GitHub and can be evaluated at no cost, the license under which it is distributed does not cover commercial use of the software. Accordingly, if you plan on embedding the RTOS into a product, you should contact Microsoft for more information on your licensing options.
The official Microsoft GitHub repository for Azure RTOS includes a getting-started example and tutorial for Silicon Labs hardware. The tutorial, which takes roughly 30 minutes to complete, walks through the process of building and running the example code using freely available command-line tools (CMake and gcc). It also covers the use of Azure’s IoT Central dashboard for monitoring status information and viewing telemetry from connected devices.
The Silicon Labs getting-started example and tutorial for Azure RTOS targets the EFR32MG12 wireless SoC in combination with a WF200 Wi-Fi transceiver. To run the tutorial, the kits listed below are needed: