1.11 RTOS Options for MSP432™ MCUs

Welcome. In this video, we will discuss the various real time operating systems for RTOS that can be used when creating applications with the MSP432. The four RTOS products that fully support the MSP432 today are TI-RTOS, freeRTOS, RTX, and Micrium OS. RTOS products provide applications with various levels of services. Many RTOS solutions provide much more than just a real time kernel.
A real time kernel is provided by all four RTOS solutions. TI-RTOS includes all drivers for various peripherals in the MSP432. There are more details on the drivers in a bit. Unique to TI-RTOS is also the power manager, which greatly simplifies power configuration by abstracting all device-specific code needed to enter [INAUDIBLE] MSP432. Middleware offerings from TI-RTOS and CMSIS include file system APIs.
Here is a table comparing the various features of the four RTOS products that support MSP432. Various scheduler types are supported by the products. As seen in the table, preemptive, round robin, and cooperative schedulers are supported. A preemptive scheduler is where each task has a different priority, and will run until a higher priority task gets ready to run.
In round robin scheduling, each task will run for a fixed period of CPU runtime or timeslice. In cooperative schedulers, each task will run until it is told to pass control to another task, or reaches a blocking call. Being CMSIS compliant with help applications integrate into other middleware provided by [INAUDIBLE]. Keil RTX is CMSIS compliant.
All four RTOS provide a rich list of services, including the familiar task [INAUDIBLE] and software timers. All four support zero variance interrupts, when RTOS services are not required within the interrupt. Approximate size benchmarks are also available.
Since low power is key for all MSP432 applications, various features related to low power are listed. Tick suppression is supported by most, as this allows the system tick to get turned off when no tasks requires it. This allows the CPU to sleep for longer periods of time without being woken up by the RTOS tick. Most RTOS also provide hooks for applications to use device-specific code to enter your power modes. TI-RTOS is the only one that supports a full featured power manager that is specific to the MSP432.
No RTOS offering is attractive without a good set of debugging and trace tools. This table lists the various tools offered by the RTOS products. Object viewers are graphical tools that display the current state of RTOS objects, such as how many tasks are waiting on a particular [INAUDIBLE] or which task is in a run state, et cetera.
An execution graph shows the time consumed by the various threads over time, and can be used to visualize how an application needs real time, or why it does not need real time. Logging refers to a graphical tool that captures and displays debug messages sent by the RTOS over [INAUDIBLE] ethernet, USB, et cetera. This tool is very useful to trace RTOS events for debug.
Several RTOS solutions have a GUI to help configure the RTOS, such as configuring the number of priorities, task, stack size, et cetera. TI-RTOS goes above and beyond, and allows allocation of static RTOS objects within their RTOS config tool. Several RTOS, some associated with an ID, allow applications to plot variables and associate variables with [INAUDIBLE] heat map, et cetera. This is shown under signal plots. All of the four RTOS options support various IDEs and their associated compilers. They may not provide out-of-the-box projects for all the supported IDEs and compilers.
The last columns talk about examples, licensing, and available certifications and cost of these RTOS solutions. Many RTOS are free, and are licensed BSD or modified GPS. TI-RTOS provides a large number of examples. Others have a few examples, and more to come. Micrium has been certified specifically for safety applications.
Now let's talk about TI-RTOS in more detail. TI-RTOS is developed and maintained by Texas Instruments. They fully support the MSP432 device, and have greater than 50 out-of-the-box examples. And many of these examples run on the MSP432 launchpad with a combo boosterpack to demonstrate real world examples.
The TI-RTOS real time kernel provides a broad range of services, as seen in the table earlier. TI-RTOS has drivers for various MSP432-specific peripherals, such as SPI, I2C, UART, PWM, RTC, GPIO, and timer. The driver APIs are common across various TI MCUs. For example, the same API can be used on an MSP432 C2000, as well as a CC26XX device.
The exciting new addition to TI-RTOS is the power manager, which we will cover in detail in the next slide. TI-RTOS is also the basis for new Energia MT, or multi-threaded Energia. And more details to follow.
The TI-RTOS power manager helps applications with entering and exiting various low power modes, and choosing among the various performance levels available in the MSP432, such as the active node LDO with vcore of 0, or active node DCDC with an vcore of 1. Power manager reduces a [INAUDIBLE] code sequence into a single function call, such as those shown in these slides. Applications can pick the sleep mode and the performance level, and then the power manager will manage the rest in a thread-safe GUI. Clocks get configured, flash wait states and buffing modes get configured, RTC and watchdog get managed based on the performance level automatically.
All RTOS drivers-- TI-RTOS drivers use the power manager services. Drivers give inputs to power manager on which sleep mode or performance level they can handle at any given time. Drivers also get notified by the power manager when sleep or performance events occur.
Now let's talk a little bit about Energia and Energia MT. Energia is the easy-to-use programming environment for my controllers based on the wiring framework, the same framework Arduino is based on. Energia has a vibrant, self-supporting community of enthusiastic users and contributers. Now Energia uses TI-RTOS as a foundation, and supports multiple threads which make it easy for the applications to write modular code. And automatic low power comes with TI-RTOS for free.
As seen in this slide, a complex sketch which is difficult to figure out can be broken down into simpler sketches that can run in parallel. That is, run in different threads. See the video in the link shown here.
The Energia framework is shown in this slide. And to the left, we see Energia MT where it uses TI-RTOS. This makes Energia even more portable across TI MCUs, and also makes it very easy to put Energia to new devices.
Now let's talk a little bit about ARM RTX. ARM RTX is fully supported on the MSP432. ARM RTX is free, and comes installed with the ARM MDK. And the link is shown in the slide here.
ARM RTX was specifically written for embedded systems based on ARM and Cortex-M MCUs. It therefore runs quickly, and has a very low [INAUDIBLE] footprint of around 4 [INAUDIBLE]. Detailed benchmarks for ARM RTX are available online.
Another key feature is that ARM RTX follows the ARM CMSIS standard. ARM RTX has also a flexible scheduler, which is deterministic, and supports zero latency interrupts. By default, the scheduler is round robin preemptive. ARM RTX low power support specific to the MSP432 is coming soon.
Here are some of the key features and advantages of freeRTOS. freeRTOS, by name, is free, and is provided with a modified GPL license. This license makes the kernel sourcecode remain opensource, while the rest of the application can remain closed if needed. It's compiler-agnostic, and supports CCS, IR, Keil, GCC, and tasking compilers.
The out-of-the-box demo is available for CCS and IR. FreeRTOS uses prioritized preemptive scheduling with time slicing. This means that the RTOS scheduler will always run the highest priority task that is in a ready state, and will switch between tasks of equal priority at every RTOS tick interrupt. Using config parameters, you can also modify the scheduler to continue to run the highest priority task that is in the ready state without the switching for every tick. freeRTOS supports tickless mode of operation, and provides idle task hooks for applications to enter low power modes. A safe RTOS version of freeRTOS is available which has been certified for safety-critical applications.
Micrium OS supports MSP432. Micrium OS is well-known in safety-critical applications such as avionics, medical, and even nuclear. MSP432 is supported in mu C/OS-II and mu C/OS-III RTOSes from Micrium. Micrium provides built-in benchmarks that allow applications to get members for their system using Micrium. Micrium is certified for safety, and please contact Micrium for cost and licensing questions.
That brings us to the end of this video on RTOS options available on the MSP432 today. Thank you.