How has ThreadX changed over time in terms of functions and code size?
Surprisingly, ThreadX today is very similar to the original product we introduced in 1997. Applications written for the original ThreadX build are able to run on the latest version without any modification. There has been and continues to be incremental refinement, of course, so ThreadX today is smaller and faster than the original.
Today’s ThreadX also has more functionality than the original, including priority inheritance, our unique event-chaining technology, as well as execution profiling and built-in performance metrics. ThreadX today is also safety-certified to SIL 4, ASIL D, Class C Medical, and much more. This level of safety certification requires 100% statement and 100% branch (MC/DC) test coverage, making today’s ThreadX one of the most highly tested RTOSs on the market.
How has the ThreadX microkernel architecture affected its size, functionality and acceptance compared to its predecessors?
We actually introduced a new term—picokernel—with the introduction of ThreadX in 1997. The idea behind picokernel is that it’s a small, non-layered design. This means that ThreadX has a very small function call depth and is therefore fast and uses less stack memory. Our picokernel design yields a minimal footprint on the order of 2 kB on a Cortex-M class part.
Automatic scaling is also part of the picokernel design. This means that only what’s used of ThreadX by the application is brought into the final image by the linker. The application developer doesn’t need to go through extensive compile-time configuration options—it just happens automatically via the picokernel design. ThreadX has enjoyed a size and performance advantage since its introduction in 1997 and continues to do so today. This is largely why ThreadX dominates the high-volume and SoC embedded markets.