Eclipse ThreadX
v6.4.3.202503_relFeatures
-
Picokernel architecture eliminates unnecessary function call overhead by plugging services directly into the core.
-
Preemption-threshold scheduling reduces context switches and helps guarantee system schedulability.
-
Automatic scaling ensures only the services used by the application are included in the final link-time image.
-
Symmetric Multiprocessing (SMP) support provides dynamic load balancing across multiple processor cores.
-
ThreadX Modules enable dynamic loading of application threads with optional MPU/MMU memory protection.
-
Event chaining allows applications to register notify callbacks for every communication or synchronization object.
-
Sub-microsecond context switching and fast boot times in fewer than 120 cycles for high-performance requirements.
-
Full determinism ensures consistent performance regardless of the number of threads in the ready state.
-
Execution Profile Kit (EPK) provides real-time performance metrics and system event tracing.
-
Separate interrupt stack management reduces the RAM footprint required for individual thread stacks.
-
MISRA-C: 2004 and 2012 compliance for safety-critical and industrial-grade software development.
-
Adaptation layers provide compatibility for legacy APIs including FreeRTOS, POSIX, and OSEK.
-
Advanced memory management includes both fixed-size block pools and variable-size byte pools.
-
Priority-based preemptive scheduling supports up to 1024 priority levels for complex task management.
-
Run-time stack analysis detects and prevents stack overflow conditions during execution.
Eclipse ThreadX is designed with a non-layered picokernel architecture, where services are integrated directly into the core rather than being built in layers. This design minimizes function call overhead and results in a highly efficient, small-footprint kernel (as small as 2KB instruction area). The system is highly modular, utilizing automatic scaling to ensure that only the specific services invoked by the application are included in the final binary image.
The architecture supports both Asymmetric Multiprocessing (AMP) and Symmetric Multiprocessing (SMP). In SMP mode, the kernel performs dynamic load balancing across available cores while allowing all resources, such as queues and semaphores, to be accessed by any thread on any core. For security and reliability, the ThreadX Modules subsystem allows for the dynamic loading of code into separate address spaces, protected by hardware Memory Protection Units (MPU) or Memory Management Units (MMU).
Core Components
- Thread Manager: Handles priority-based preemptive and cooperative scheduling.
- Communication Objects: Includes message queues, counting semaphores, and mutexes with priority inheritance.
- Event Flags: Provides synchronization through logical AND/OR combinations of event bits.
- Memory Pools: Manages both fixed-block and variable-byte memory allocation.
- Timer Management: High-resolution software timers and optimized interrupt processing.
Use Cases
This RTOS is ideal for:
- Industrial Automation: High-reliability control systems requiring MISRA compliance and TÜV safety certifications.
- Consumer Electronics: Resource-constrained devices like printers and wearables that benefit from a 2KB minimal footprint.
- Medical Devices: Safety-critical applications requiring deterministic response times and memory protection.
- IoT Gateways: Multicore systems utilizing SMP for dynamic load balancing and complex networking stacks.
Getting Started
To begin developing with Eclipse ThreadX, it is recommended to use the CMake-based build system which supports various toolchains including the Arm GNU Toolchain, IAR, and AC6. Developers should start by defining system-wide configurations in a tx_user.h file, using the provided tx_user_sample.h as a template. The repository includes a samples/ directory containing demo_threadx.c, which demonstrates basic thread creation and IPC usage. Comprehensive documentation is available in the docs/ folder and the official Eclipse ThreadX Documentation repository.
Related Projects (12)
Eclipse ThreadX USBX
A high-performance USB host, device, and on-the-go (OTG) stack fully integrated with the Eclipse ThreadX RTOS. It provides a small-footprint solution for deeply embedded applications requiring USB connectivity across various hardware architectures including ARM Cortex-M, Renesas, and NXP microcontrollers.
X-CUBE-AZRTOS-F4 Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package for the STM32F4 series that integrates the Microsoft Azure RTOS suite into the STM32Cube ecosystem. It provides a full middleware stack including ThreadX, NetXDuo, FileX, LevelX, and USBX, optimized for STM32 microcontrollers.
X-CUBE-AZRTOS-F7 Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package that integrates the Microsoft Azure RTOS suite with the STM32F7 series of microcontrollers. It provides a full middleware stack including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with ready-to-run examples for STM32F7 evaluation boards.
X-CUBE-AZRTOS-G0: Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package for the STM32G0 series, integrating Microsoft Azure RTOS into the STM32Cube ecosystem. It provides a full suite of middleware including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with hardware-specific drivers and ready-to-run examples for evaluation boards.
X-CUBE-AZRTOS-G4 Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package that integrates the Microsoft Azure RTOS suite into the STM32Cube ecosystem for STM32G4 microcontrollers. It provides a full middleware stack including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with hardware-specific porting and ready-to-run examples.
X-CUBE-AZRTOS-H7 Azure RTOS Software Expansion
A comprehensive software expansion package for the STM32Cube ecosystem that integrates the Microsoft Azure RTOS suite with STM32H7 microcontrollers. It provides a full middleware stack including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with hardware-specific drivers and ready-to-run examples for evaluation boards.
X-CUBE-AZRTOS-L4 Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package for STM32Cube that integrates Microsoft Azure RTOS with the STM32L4 series of microcontrollers. It includes middleware components like ThreadX, NetXDuo, FileX, LevelX, and USBX, along with ready-to-run examples for evaluation boards.
X-CUBE-AZRTOS-L5: Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion for the STM32Cube ecosystem that integrates Microsoft Azure RTOS with the STM32L5 series of microcontrollers. It provides a full suite of middleware including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with ready-to-run examples for evaluation boards.
X-CUBE-AZRTOS-WB Azure RTOS Software Expansion for STM32Cube
A comprehensive software expansion package for the STM32Cube ecosystem that integrates Microsoft Azure RTOS for the STM32WB series of microcontrollers. It provides a full suite of middleware including ThreadX, NetXDuo, FileX, LevelX, and USBX, along with hardware-specific drivers and ready-to-run examples.
X-CUBE-AZRTOS-WL: Azure RTOS Software Expansion for STM32WL
A comprehensive software expansion package integrating Microsoft Azure RTOS with the STM32Cube ecosystem for STM32WL microcontrollers. It provides a full suite of industrial-grade middleware including ThreadX, NetXDuo, FileX, and LevelX, optimized for low-power wireless IoT development.
X-CUBE-IOTA1 Firmware Package
An expansion software package for STM32Cube that enables IOTA Distributed Ledger Technology (DLT) on STM32 microcontrollers. It integrates Azure RTOS ThreadX and NetXDuo with middleware for secure hardware root of trust, encryption, and IOTA Client APIs for interacting with the Tangle.
Eclipse ThreadX NetX Duo
An industrial-grade dual IPv4 and IPv6 TCP/IP network stack designed for deeply embedded real-time and IoT applications. It provides a comprehensive suite of network protocols and security features, fully integrated with the ThreadX RTOS and supported by major semiconductor vendors.