The name ThreadX refers to the
threads used as the executable elements, with
X representing
context switching. ThreadX provides priority-based, pre-emptive scheduling; fast
interrupt response;
memory management; interthread communication;
mutual exclusion; event notification; and thread
synchronization features. Major distinguishing technological characteristics of ThreadX include a preemption-threshold,
priority inheritance, efficient timer management, fast software timers,
picokernel design, event-chaining, and small size (minimal size on an
ARM architecture processor is about 2 KB). ThreadX supports
multi-core processor environments via either
asymmetric multiprocessing (AMP) or
symmetric multiprocessing (SMP). Application thread isolation with
memory management unit (MMU) or
memory protection unit (MPU) memory protection is available with ThreadX Modules. ThreadX has safety certifications from
TÜV and
UL and is
Motor Industry Software Reliability Association and
MISRA C compliant. ThreadX is the foundation of Express Logic's X-Ware
Internet of things (IoT) platform, which includes embedded
file system support (FileX), embedded UI support (GUIX), embedded
Internet protocol suite (TCP/IP), cloud connectivity (NetX/NetX Duo), and Universal Serial Bus (
USB) support (USBX). ThreadX is liked by developers and is a popular RTOS. , ThreadX RTOS has become one of the most popular RTOSs in the world, deployed in over 6.2 billion devices, including consumer electronics, medical devices, data networking applications, and SoCs.
Technology ThreadX implements a priority-based, pre-emptive scheduling algorithm with a proprietary feature called preemption-threshold. The threshold provides greater granularity within critical sections, reduces context switching, and has been the subject of academic research on guaranteeing scheduling. ThreadX provides a unique construct called event chaining, where the application can register a callback function on all
APIs that can signal an external event. This helps applications chain together various public objects in ThreadX allowing one thread to block on multiple objects. ThreadX also provides counting
semaphores,
mutexes with optional priority inheritance, event flags,
message queues, software timers, fixed-sized block memory, and variable-sized block memory. All APIs in ThreadX that block on resources also have an optional timeout. ThreadX offers
multi-core processor support via either AMP or SMP. Application code isolation is available through the ThreadX Modules component.
Safety certification ThreadX (and FileX and NetX Duo) have been precertified by SGS-TÜV Saar to the following safety standards:
IEC 61508 SIL 4,
IEC 62304 Class C,
ISO 26262 ASIL D, and
EN 50128 SW-SIL 4. ThreadX (and FileX and NetX Duo) have been precertified by UL to the following safety standards: UL/
IEC 60730, UL/
IEC 60335,
UL 1998 ThreadX has also been certified to
DO-178 standards by various military and aerospace companies. It is supported by popular
Transport Layer Security (SSL/TLS)
libraries such as
wolfSSL.
Packaging As of 2017, ThreadX is packaged as part of X-Ware IoT Platform in full
source code and with no runtime
royalty payment. ==Major components==