This blog is about the RTX, ARM's free and reliable RTOS. RTX now has a BSD license and this makes it free. ARM provides all RTX source code and maintains it. While initially focused on Cortex®-M processors, RTX has been ported to Cortex-R and at least one Cortex-A9. It runs perfectly on TI's new MSP432 MCU platform, based on the ARM Cortex-M4 core.
A tutorial with RTX and DSP examples for the MSP432 MCU LaunchPad is now available online.
RTX is a full-featured RTOS that consumes minimal resources on your target and is easy to install, configure and modify. You can use RTX with any tool chain: not just Keil MDK and this includes GCC. RTX is completely CMSIS-RTOS compliant. This makes it easy to use and stable.
It took me about 5 minutes to get RTX configured and running with a minimum main.c project on the MSP432 LaunchPad using the general steps outlined in the MDK Getting Started manual. It is available here: www.keil.com/mdk5/. General information about RTX is here: www.keil.com/rl-arm/kernel.asp
RTX uses a minimum of system resources and never turns off IRQ interrupts. RTX uses the Cortex SysTick timer with its Interrupt 15 and also has a tickless mode for low power operation. RTX uses less than 4 Kbytes for the kernel. Here are the memory requirements:
There are compelling advantages of using an RTOS in all but the simplest of designs. See http://www.keil.com/rl-arm/rtx_rtosadv.asp for more details.
The best way to get the latest RTX is to download and install MDK. MDK is free and you do not need any license. You can then obtain the RTX libraries with source code here: C:\Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS\RTOS. You can use the kernel awareness windows provided with µVision® to experiment with RTX and view how your changes affect its operation.
Another method is by downloading the ARM CMSIS Pack CMSIS (Cortex Microcontroller Software Interface Standard). This file has a .pack extension which is really a standard .zip file. The RTX files with source code are inside this zip file.
Ports are included for Keil, GCC and IAR toolchains.
This is the System and Thread Viewer displaying information real-time about threads: You do not need to stop the program to view this window.
This is the Event Viewer and it also updates in real-time while your program is running: It displays in a graphical format when each thread is running with timestamps. Note the ide daemon is running most of the time. You can change these timing parameters easily and see the results immediately in the Event Viewer. You can measure timings with the cursors. Serial Wire Viewer (SWV) support is needed for the Event Viewer. This is supplied with a Keil ULINK®2, ULINKpro or a Segger J-Link.
I created a hands-on tutorial using Keil MDK with the MSP432 MCU and it includes references to RTX. There are several examples and two of them use RTX. Blinky is a small bare metal program and RTX_Blinky has RTX added to it. The DSP example uses RTX to allocate processing time between four threads. There is a section on adding RTX to a project and then adding a thread. This action shows up in the kernel awareness windows. This lab is located here: www.keil.com/appnotes/docs/apnt_276.asp
TI PROVIDES TECHNICAL AND RELIABILITY DATA (INCLUDING DATASHEETS), DESIGN RESOURCES (INCLUDING REFERENCE DESIGNS), APPLICATION OR OTHER DESIGN ADVICE, WEB TOOLS, SAFETY INFORMATION, AND OTHER RESOURCES “AS IS” AND WITH ALL FAULTS, AND DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS.
These resources are intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable standards, and any other safety, security, or other requirements. These resources are subject to change without notice. TI grants you permission to use these resources only for development of an application that uses the TI products described in the resource. Other reproduction and display of these resources is prohibited. No license is granted to any other TI intellectual property right or to any third party intellectual property right. TI disclaims responsibility for, and you will fully indemnify TI and its representatives against, any claims, damages, costs, losses, and liabilities arising out of your use of these resources.
TI’s products are provided subject to TI’s Terms of Sale (www.ti.com/legal/termsofsale.html) or other applicable terms available either on ti.com or provided in conjunction with such TI products. TI’s provision of these resources does not expand or otherwise alter TI’s applicable warranties or warranty disclaimers for TI products.
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2023, Texas Instruments Incorporated