Real-Time Operating Systems
For many IoT projects, bare metal design, based on a simple loop in main(), is no longer a viable option. As more demands are placed on developers to implement complex communication protocols and adhere to strict timing constraints, the advantages of using the multitasking capabilities of a Real-Time Operating System (RTOS) are increasingly clear. Silicon Labs has supported and promoted RTOS adoption for years and provides all of the tools needed to quickly get a new, multi-task project up and running.
RTOS Support in Simplicity Studio
It can be a challenge to manually add an RTOS to a new software project—especially for anyone not overly familiar with the RTOS’ source files, configuration parameters, typical build settings, etc., which is the reason Silicon Labs delivers RTOS code through the Simplicity Studio IDE. Developers leveraging Simplicity Studio IDE for IoT projects will find pre-packaged examples and helpful configuration tools that can accelerate the initial phases of an RTOS-based development effort.
Simplicity Studio RTOS Options
FreeRTOS is a lightweight and easy-to-use real-time kernel offered under open-source licensing terms. Since its introduction nearly two decades ago, FreeRTOS has amassed a sizeable user base and has made its way into an incredibly diverse array of embedded designs. Example projects and configuration tools that streamline the creation of new FreeRTOS-based projects are delivered in Silicon Labs’ Simplicity Studio IDE.
Development and maintenance responsibilities for FreeRTOS were officially taken over by Amazon in late 2017. Since that time, Amazon has expanded the original codebase with a collection of libraries, many of which are focused on enabling connectivity in the type of resource-constrained devices originally targeted by the FreeRTOS kernel. Silicon Labs has built support for Amazon’s libraries into Simplicity Studio, providing an intuitive framework for connected device development.
With Micrium OS, developers have a complete set of RTOS components to help meet the numerous challenges that designing for today’s IoT brings. Although it has roots in the commercial RTOS space, Micrium OS can be used at no cost in projects targeting EFR32 and EFM32 devices. The OS is delivered exclusively through Simplicity Studio, which includes a number of helpful, Micrium-based examples that streamline the early phases of new development efforts.
Simplicity Studio RTOS Comparison
|Kernel||API||Proprietary w/CMSIS-RTOS2 layer||Proprietary w/CMSIS-RTOS2 layer|
|Scheduling Algorithm||Priority-based, pre-emptive with support for time slicing||Priority-based, pre-emptive w/support for time slicing|
|Resource Protection||Mutexes and semaphores||Mutexes and semaphores|
|Signaling and Communication||Semaphores, event flags, queues (by copy), and task notifications||Semaphores, task semaphores, event flags, queues (by reference), and task queues|
|Software Timers||One-shot and periodic||One-shot and periodic|
Open-source project managed by Amazon
|Developed and maintained by Silicon Labs|
|Licensing||MIT||Proprietary (Simplicity Studio MSLA), with no licensing costs on EFR32 and EFM32|
|Wireless Stack Support||Bluetooth, Connect (proprietary wireless), OpenThread, Wi-SUN, and Z-Wave||Bluetooth, Connect (proprietary wireless), Wi-SUN, and Zigbee|
(delivered in Simplicity Studio)
|Amazon FreeRTOS libraries, including BLE and Common I/O||Micrium OS File System, IO Module and protocol stacks (TCP/IP, USB, and CAN)|
Additional RTOS Options
Microsoft provides a number of software solutions for developers of connected devices, and Azure RTOS is one of the most recent additions to the IoT giant’s portfolio. Whereas other Microsoft offerings, such as Windows IoT and Azure Sphere OS, have memory and processing requirements beyond the capabilities of many resource-constrained, Cortex-M-class devices, Azure RTOS is aimed squarely at hardware in this category. Developers choose Azure RTOS to give themselves a thoroughly tested, highly efficient and reliable foundation for their IoT designs.
Zephyr is a comprehensive open-source software offering that includes a kernel, device drivers, and protocol stacks. It is maintained by the Linux foundation and supported by a number of different silicon vendors, tool providers, and other companies with an interest in open-source software. Examples for select Silicon Labs kits are available from the official Zephyr GitHub repo to help developers get started with this OS.