RTOSX Delivers Support for Open-Source Eclipse ThreadX
What you’ll learn:
Real-time operating systems (RTOSes) provide a deterministic multitasking environment. Quite a number of them are available, and many have moved into the open-source realm. One of these is Eclipse ThreadX.
I talked with Bill Lamie, President and CEO of PX5 RTOS, about RTOSes and his involvement with ThreadX, RTOSX, and PX5 RTOS (watch the video above).
What is ThreadX?
ThreadX, developed by Bill Lamie at Express Logic in 1997, is primarily written in C. ThreadX SMP added support for multicore platforms. It was complemented by a variety of libraries, including NetX for TCP/IP networking, FileX for file system management, and GUIX with embedded user interface (UI) support. It was a closed-source, proprietary product used extensively in embedded applications.
In 2019, Microsoft bought Express Logic and renamed ThreadX to Azure RTOS. The platform was customized to work with the Azure cloud and made available to developers. At this point, ThreadX moved into the open-source realm.
In 2023, Microsoft donated Azure RTOS to the Eclipse Foundation, which started the Eclipse ThreadX project. This offloaded support from Microsoft while providing an open-source platform for Azure cloud access.
ThreadX leverages a picokernel design and includes a priority-based, preemptive scheduler. It supports an event-chaining, preemption-threshold and task priority inheritance. It has very fast interrupt response times and incorporates thread synchronization features. It also provides memory-management support, interthread communication (e.g., mutual exclusion along with event notification) and timer management, and fast software timers. The minimum footprint on an Arm Cortex-M architecture processor is around 2 kB.
ThreadX had many safety certifications, including Technischer Überwachungsverein and UL (formerly Underwriters Laboratories), and it’s MISRA C compliant.
Why RTOSX is Important
While Eclipse ThreadX is freely available, its commercial support and safety certifications aren’t part of the mix. This is where PX5’s RTOSX comes into play. It’s essentially Eclipse ThreadX with commercial and certification support.
RTOSX is important for two groups: those already using ThreadX and those building new applications on ThreadX that need commercial support and certification support. Those simply needing an RTOS and providing their own support can use the Eclipse ThreadX source code.
Why POSIX RTOS is Important
Most early RTOS implementations, like ThreadX, provided similar functionality, but with a proprietary application programming interface (API). This tended to make migration of software to or from an RTOS more challenging.
The Portable Operating System Interface (POSIX) is a standard API that’s now used by RTOSes and other operating systems. Actually, POSIX is a set of standards developed by the IEEE, The Open Group, and ISO/IEC. It initially started from IEEE Std 1003.n. Linux is one example of an operating system that includes POSIX support.
The PX5 RTOS is built around the POSIX API. It’s likely a better alternative for new applications requiring certifiable RTOS support. It has the same small footprint and high performance of ThreadX, but with a more modern twist.