Microsoft Opens the IoT Floodgates on the 32-bit MCUs of Five Semiconductors GiantsApril 03, 2020 by Gary Elinoff
Microsoft envisions its Azure real-time operating system—now available to ST, Renesas, NXP, Microchip, and Qualcomm—as a new animating force for billions of MCUs embedded in IoT devices.
Several major semiconductor supplies—STMicroelectronics, Renesas, NXP, Microchip, and Qualcomm—have announced that, along with their 32-bit MCUs, they will now offer customers embedded development kits featuring Azure RTOS ThreadX, a major component of the Azure real-time operating system (RTOS).
Microsoft has said that they will automatically grant Azure RTOS production licenses for OEM customers of these five MCU giants.
How Azure Simplifies IoT Development
Microsoft’s Azure is a cloud computing modality aimed at developing, testing, and managing IoT applications from the company’s worldwide data centers. Through a combination of platform-as-a-service (PaaS), infrastructure-as-a-service (IaaS), and software-as-a-service (SaaS), Azure enables OEMs to ease the path of IoT development and get their products to market more quickly.
ST has a standing history with Microsoft Azure products. Above is a diagram of the Azure IoT ecosystem targeted by the X-CUBE-AZURE expansion package. Image used courtesy of STMicroelectronics
Based on Windows, Azure TraceX allows embedded developers to graphically observe system events, such as interrupts and context switches, as they occur in real-time. The ability to see these occurrences and observe their timing in relation to each other is a powerful tool for developers.
What Is an RTOS?
With more and more expected of IoT edge devices, there has been an industry-wide migration to 32-bit MCUs. As Microsoft explains in a white paper on real-time operating systems, an RTOS manages the processor resources—such as processor cycles, memory, peripherals, and interrupts—that control these complex IoT devices. These tasks are divided into pieces called threads, and each thread gets its own “virtual microprocessor” in a process called multithreading.
Partitioning the MPU’s capacity to the threads. Image used courtesy of Microsoft
The RTOS is the arbitrator of when each thread gets to run and how much processor power it gets. The transfer of control is “invisible," and is a major feature of the RTOS. It must also offer preemption, which mandates that a function with a higher priority can shut off one with a lower priority when necessary.
Benefits of an RTOS
The benefits of an RTOS include:
- Better control of competing threads
- Ability to reduce system overhead, which can then reduce latency
- Less demand on a development team’s MPU firmware knowledge
- Simpler avenues to add new IoT features
- Easier ways to port designs between MPUs
- Built-in security
Fully Transparent and Available
Microsoft is making a major effort to establish Azure RTOS as the world’s premier RTOS. Easy access will be a hallmark of the endeavor. As such, Microsoft will be making the full source code for all Azure RTOS components readily available on GitHub. This will allow developers of embedded systems to explore the RTOS and adapt it to their own needs.
Diagram of a commercial RTOS including integrated middleware. Image used courtesy of Microsoft
Sam George, corporate VP of Azure IoT adds, "When developers are ready to take their code into production, the production license will be included automatically if they deploy to any of the supported MCU devices from STMicroelectronics, Renesas, NXP, Microchip, or Qualcomm."
Build vs. Buy
If you don’t buy an RTOS for a 32-bit IoT application, at the end of the day, you’ll be building a custom one yourself, which may not be worth the effort when this option is available.
Featured image used courtesy of Microsoft, STMicroelectronics, Renesas, NXP, Qualcomm, and Microchip
If you are working with 32-bit MPUs from these five companies, how do you anticipate Microsoft’s RTOS initiative affecting you? Have you ever found yourself transitioning from home-built software systems to commercially-available packages? If so, what prompted your transition? Share your experiences in the comments below.