Fact-checked by Grok 2 weeks ago

ThreadX

ThreadX is a (RTOS) designed specifically for deeply embedded applications, including and edge devices with microcontrollers that often have limited resources such as less than 64 KB of . It features a compact picokernel that enables advanced scheduling, preemption-threshold threading, event chaining, and efficient interrupt management, making it suitable for time-critical tasks in resource-constrained environments. Known for its small footprint, high performance, and reliability, ThreadX has powered over 12 billion devices worldwide as of 2023 across industries like automotive, medical, and . Originally developed by Express Logic in 1996, ThreadX was acquired by Microsoft in April 2019 and rebranded as Azure RTOS ThreadX in 2020 before being contributed to the Eclipse Foundation in November 2023 as an open-source project under the MIT license, renamed Eclipse ThreadX, with the transition completed in April 2024; in October 2024, the Eclipse Foundation launched the ThreadX Alliance to promote its growth and sustainability. A key strength of ThreadX lies in its certifications for safety and security, including SIL 4 for , EAL4+ under for security, and validation for its cryptographic library, making it ideal for mission-critical applications in regulated sectors. It supports a wide range of 32- and 64-bit architectures, such as , , and NXP, along with features like ARM TrustZone integration, , TLS, and DTLS for secure communications. These attributes, combined with its proven scalability—from simple sensors to complex multicore systems—have solidified ThreadX's role as a foundational in the landscape.

History

Origins and Early Development

Express Logic, Inc. was founded by William E. Lamie in 1996 in , , to develop high-performance real-time operating systems for embedded applications. Lamie, drawing from his prior experience with other RTOS designs, sought to create a more balanced and efficient that addressed limitations in simplicity and performance seen in existing systems. The first public release of ThreadX occurred in March 1997 as a commercial (RTOS) specifically targeted at resource-constrained systems. From its , ThreadX emphasized deterministic performance, ensuring predictable response times critical for applications in sectors such as and industrial devices, where timing precision is paramount for system reliability. A key architectural innovation was its picokernel design, introduced in early versions, which minimized the kernel's footprint by limiting core services to essential threading and synchronization while delegating other functions to application-level modules, thereby reducing overhead and enhancing portability. During its early years, ThreadX achieved significant milestones, including adoption in high-profile space missions such as NASA's Deep Impact project launched in 2005, where it managed scheduling, interrupts, and inter-thread communication in the spacecraft's embedded controllers to ensure mission-critical timing. By the mid-2000s, the RTOS had expanded to support a wide range of architectures, enabling its integration across diverse embedded hardware platforms and solidifying its role in demanding environments. This period of independent development under Express Logic laid the groundwork for ThreadX's commercialization, culminating in a pivotal acquisition that broadened its reach.

Acquisition by Microsoft

On April 18, 2019, Microsoft announced the acquisition of Express Logic, the developer of ThreadX, for an undisclosed amount, aiming to bolster its IoT and edge computing capabilities. The deal integrated ThreadX into Microsoft's ecosystem, leveraging its established presence in embedded systems to enhance connectivity for resource-constrained devices. By this point, ThreadX had already achieved over 6.2 billion deployments worldwide, positioning it as a key asset for scaling IoT solutions. Following the acquisition, rebranded ThreadX as RTOS in , emphasizing seamless integration with services for and cloud environments. This rebranding highlighted ThreadX's role in enabling processing on Azure Sphere devices and connectivity to for workloads. During this period, enhancements included the addition of connectivity features, such as improved support for Hub and , allowing devices to securely transmit data and perform local processing before cloud synchronization. Middleware components also saw significant expansion under , notably with NetX Duo, which introduced dual IPv4/ networking capabilities to support modern protocols and broader compatibility. By 2020, adoption continued to grow, with deeper ties to services facilitating edge-to-cloud workflows in industries like automotive and . A key milestone was the release of version 6.1 in October 2020, which included enhanced () support for multi-core systems, enabling better performance on advanced microcontrollers.

Open-Sourcing under

On November 21, 2023, announced the contribution of the RTOS source code, including the ThreadX , to the , placing it under the permissive to foster open-source collaboration. This move followed 's 2019 acquisition of Express Logic, the original developer of ThreadX, and aimed to ensure long-term sustainability through neutral . The project was subsequently renamed Eclipse ThreadX, with the first release under Eclipse Foundation governance occurring on February 29, 2024, as version 6.4.1, incorporating initial community feedback and security updates. To support commercial needs such as certified variants and ongoing maintenance, the Eclipse Foundation formed the ThreadX Alliance on October 8, 2024, which provides safety artifacts, professional support, and funding mechanisms while keeping the core codebase royalty-free under the . Commercial options through the Alliance enable access to pre-certified configurations for industries requiring compliance, without altering the open-source nature of the primary distribution. Since open-sourcing, Eclipse ThreadX has seen active community-driven enhancements, including improved support added in the 6.4.2 release via contributions for emulation and porting. Developers have submitted bug fixes addressing issues like random test failures and race conditions, alongside new ports for architectures such as Cortex-A7 using IAR and toolchains. As of November 2025, the project remains under active development, emphasizing sustainability for legacy embedded systems through the Alliance's initiatives and regular releases, such as version 6.4.3 in March 2025. As of 2025, Eclipse ThreadX has surpassed 12 billion deployments worldwide.

Overview

Core Functionality

ThreadX provides priority-based preemptive multitasking as its foundational mechanism for thread management, enabling efficient execution of multiple concurrent tasks in systems. Threads are created using the tx_thread_create API, which specifies parameters such as the thread's entry function, stack pointer, priority level (from a configurable range of to 1024 priorities), and optional time-slice settings for among equal-priority threads. Scheduling is strictly priority-driven, with higher-priority threads preempting lower ones immediately upon becoming ready, while suspension and resumption are handled via APIs like tx_thread_suspend and tx_thread_resume to pause or reactivate threads as needed. This approach ensures deterministic behavior critical for time-sensitive applications. For inter-thread synchronization, ThreadX offers a suite of primitives including counting semaphores for resource signaling, mutexes with priority inheritance to mitigate inversion issues, event flags for bit-wise event notification, and message queues for passing fixed-size data structures. Semaphores are managed through tx_semaphore_create, tx_semaphore_put (to increment the count), and tx_semaphore_get (to decrement and potentially suspend the thread until available). Mutexes extend binary semaphore functionality with ownership tracking and inheritance, using similar tx_mutex_get and tx_mutex_put calls. Event flags allow logical operations (AND/OR) on up to 32 bits per group, while message queues support priority-ordered reception for up to 16-word messages. Memory management in ThreadX emphasizes fragmentation-free dynamic allocation through byte pools and block pools, avoiding traditional heap-based issues in environments. Byte pools enable variable-size allocations via tx_byte_pool_create, tx_byte_allocate, and tx_byte_release, with optional suspension if insufficient is available. Block pools provide fixed-size blocks for predictable performance, managed by tx_block_pool_create, tx_block_allocate, and tx_block_release. These pools support thread suspension during allocation, ensuring responsiveness. Interrupt handling is optimized for minimal through fast context switching, with the locking interrupts only during brief save/restore operations, typically achieving sub-microsecond response times on common microcontrollers. This design allows application interrupts to call many ThreadX APIs directly from ISRs without significant overhead. Timer services facilitate precise time management with support for one-shot and periodic timers, created using tx_timer_create and activated via tx_timer_activate. One-shot timers expire once after a specified tick count, while periodic ones reschedule automatically upon expiration, both triggering user-defined callbacks for event-driven tasks. The core APIs follow a consistent noun-verb naming convention prefixed with tx_, such as the following pseudocode example for thread creation:
TX_THREAD my_thread;
UINT status;
status = tx_thread_create(&my_thread, "My Thread", my_thread_entry, 
                          (ULONG)0, stack_start, STACK_SIZE, 
                          PRIORITY, PREEMPTION_THRESHOLD, 
                          TX_NO_TIME_SLICE, TX_DONT_START);
For semaphore usage:
TX_SEMAPHORE my_semaphore;
status = tx_semaphore_create(&my_semaphore, "My Semaphore", INITIAL_COUNT);
status = tx_semaphore_put(&my_semaphore);  // Signal availability
status = tx_semaphore_get(&my_semaphore, TX_WAIT_FOREVER);  // Wait indefinitely
These services are enabled by ThreadX's picokernel architecture, which integrates all kernel functions directly into the core for streamlined execution.

Architectural Design

ThreadX employs a picokernel architecture, which integrates all kernel services—such as scheduling, , and —into a single, non-layered kernel image. This design eliminates the inter-process communication overhead inherent in microkernel architectures, where services are separated into distinct processes, thereby enhancing execution speed and reducing latency in resource-constrained embedded environments. A key aspect of ThreadX's scheduling mechanism is preemption-threshold scheduling, which allows developers to assign a thread a preemption threshold higher than its base priority. This feature prevents preemption by threads with priorities between the base and threshold levels, thereby minimizing unnecessary context switches in multi-threaded applications while still permitting interruption by higher-priority threads to avoid . For instance, in systems with tightly coupled threads sharing resources, this reduces overhead by grouping related threads into effective priority clusters without requiring full priority inheritance protocols. Event chaining in ThreadX facilitates efficient communication from interrupts to threads by allowing a thread to suspend on multiple synchronization objects, such as queues or semaphores, and automatically chain events upon signaling without the need for polling or manual intervention. This mechanism supports sequenced operations where an event from one object triggers notification to the next, optimizing handling in systems by reducing CPU cycles spent on busy-waiting loops. Developers can implement this via notification callbacks, like tx_queue_send_notify, to link events dynamically for complex, event-driven workflows. The architecture emphasizes footprint optimization, with the core requiring under 2 KB of and 1 KB of in minimal configurations that include basic management and scheduling. This scalability arises from conditional compilation of services, allowing unused features to be excluded at build time to fit ultra-constrained devices with limited memory. Portability is achieved through an that isolates hardware-specific code, primarily defined in the tx_port.h header file, which encapsulates routines for context switching, handling, and timer operations. This layer enables ThreadX to support a wide range of architectures, including , RISC-V, and x86, by providing compiler-agnostic interfaces that developers customize for target platforms without altering the core . Symmetric multiprocessing (SMP) support was introduced in 2009 with version 5.x, extending the to multi-core processors with features for thread migration and automatic load balancing across cores. This allows threads to execute on any available processor, improving throughput in parallel workloads while maintaining determinism through per-core scheduling and .

Performance Characteristics

ThreadX exhibits low-overhead operation, enabling rapid ing and minimal latency essential for applications. On typical processors, context switch times are under 1 microsecond, while interrupt response for high-priority events achieves sub-microsecond . These metrics stem from the RTOS's picokernel design, which minimizes layering overhead to ensure efficient thread suspension and resumption without unnecessary indirection. The supports scalability for demanding workloads, accommodating up to 1024 priorities (configurable from a default of 32) and an effectively unlimited number of threads limited only by available . Scheduling employs a priority-based with O(1) complexity, allowing quick selection of the highest-priority ready thread via direct access rather than linear searches. applies among equal-priority threads to promote fairness without compromising responsiveness. Determinism is enhanced through mechanisms that prevent common real-time pitfalls, such as , which is mitigated by optional priority inheritance on mutexes to ensure higher-priority threads are not indefinitely blocked by lower ones. In benchmarks, this yields jitter-free responses, maintaining consistent execution timings even under contention. Optimization strategies further tailor performance, including the use of inline for critical paths like interrupt service routines to reduce overhead, and configurable compilation options such as disabling unused services or error checking, which can improve overall speed by up to 30%. These features allow developers to balance footprint and efficiency, with the core scaling from 2 in minimal configurations.

Safety and Certification

Functional Safety Standards

ThreadX's core and select components, including GUIX, NetX Duo, and USBX, have been certified to IEC 61508-3:2010 SIL 4 by SGS-TÜV Saar for versions up to 6.1.x, confirming compliance through route 3S processes. This certification applies to safety-critical systems in industrial and general embedded applications, ensuring deterministic behavior and fault management. For automotive use, ThreadX achieves ISO 26262-8:2018 ASIL D certification, which includes analysis of fault-tolerant design elements to mitigate systematic and random hardware failures in road vehicle systems. In applications, it meets 50128:2011 SW-SIL 4 requirements for software in safety-related systems, focusing on lifecycle processes and tool qualification. Additionally, for medical devices, ThreadX complies with :2015 Class C, addressing software safety classification for systems where failure could lead to death or serious injury. These certifications result from over 25 years of iterative since ThreadX's initial release in 1997, incorporating rigorous testing, , and documentation practices aligned with high-integrity standards. Safety artifacts, such as user manuals, reports, and variants of certified , are distributed via the ThreadX Alliance to support end-user certification efforts. Post-open-sourcing under the in 2023, the ThreadX Alliance oversees ongoing maintenance, including certificate transfers from SGS-TÜV Saar and plans for recertification of newer versions like 6.4.x, with full traceability ensured through version-controlled artifacts. These standards complement ThreadX's security certifications, together bolstering reliability in critical deployments.

Security Features and Certifications

ThreadX incorporates several built-in security mechanisms to mitigate common vulnerabilities in systems. One key feature is protection, enabled via the TX_ENABLE_STACK_CHECKING configuration, which fills thread stacks with a predefined pattern (such as 0xEF) and checks for corruption during thread suspension and resumption, triggering a user-defined handler if detected. Additionally, ThreadX provides secure through fixed-size pools and variable-size byte pools, which allocate memory without fragmentation and include boundary checks to prevent overflows or unauthorized access. parameter validation is enabled by default across services, verifying pointers and options (e.g., returning TX_PTR_ERROR for invalid pointers) to block malformed inputs that could lead to exploits like buffer overflows, though this can be disabled post-debugging for performance gains. The ThreadX kernel, along with associated middleware, holds formal security certifications. It has achieved EAL4+ certification, evaluated by Brightsight BV and certified by SERTIT, with the Target of Evaluation encompassing the kernel's secure boot processes and features via the ThreadX MODULES extension for TrustZone. Cryptographic modules in middleware components, such as NetX Duo, are validated under by atsec and certified by NIST, ensuring compliance for federal standards in encryption and . Networking components enhance security through protocol support in NetX Duo, including for authenticated and encrypted communications and TLS/DTLS for secure transport-layer sessions, enabling protected data exchange in environments. Following its open-sourcing under the , ThreadX is licensed under the permissive , which supports community contributions and audits while maintaining compatibility with commercial deployments. The 's governance model includes a structured reporting , allowing coordinated and resolution through public mailing lists and issues, with recent community-identified issues (e.g., CVEs in versions prior to 6.4) addressed via patches. ThreadX is designed with a minimal —typically around 2 for the core —tailored for resource-constrained edge devices, thereby reducing the overall by limiting exposed interfaces and code complexity compared to larger operating systems. This architecture aligns with threat models for deployments, emphasizing and low-resource usage to deter exploitation in safety-critical and connected applications.

Ecosystem Components

The ecosystem components of Eclipse ThreadX, formerly Azure RTOS, include and tools that extend the kernel's capabilities. These were contributed to the in 2023 and fully transitioned to open-source under the in April 2024.

Kernel Services

ThreadX kernel services extend the core functionality by providing advanced APIs for thread management, memory allocation, synchronization , interrupt handling, and system configuration, enabling fine-grained control in applications. These services are designed for deterministic behavior, with APIs that support suspension, timeouts, and priority inheritance to maintain system responsiveness. Advanced allow dynamic adjustments to scheduling during . The tx_thread_priority_change modifies a thread's , which ranges from 0 (highest) to TX_MAX_PRIORITIES-1 (lowest), automatically updating the preemption-threshold if set; it returns the previous priority via an optional and resumes suspended threads affected by the change. Similarly, tx_thread_time_slice_change alters a thread's time-slice for among equal- threads, specified in timer ticks (e.g., 20 ticks for 200ms at 100 ticks/second), disabling if set to TX_NO_TIME_SLICE or if preemption-threshold is enabled; this ensures predictable execution without excessive context switches. Memory management services in the include byte s for variable-sized allocations and block s for fixed-size blocks, both optimized to minimize fragmentation. The tx_byte_allocate requests contiguous bytes from a using a first-fit , supporting wait options like TX_NO_WAIT (immediate return), TX_WAIT_FOREVER (indefinite ), or a timeout in ticks; it handles potential fragmentation by scanning the for suitable free space. For block s, tx_block_release returns a fixed-size block to its originating , merging adjacent free blocks to prevent fragmentation and resuming any threads suspended on allocation; this provides constant-time operations ideal for constraints. Synchronization is facilitated by event flags and message queues, which use bit-mapped structures for efficient signaling. Event flags groups support up to 32 bits per group, with tx_event_flags_set logically OR-ing new flags (AND option available) and tx_event_flags_get retrieving bits via AND or OR logic on requested flags, including actual flags in an output parameter; both allow suspension with configurable wait options for resource coordination. Message queues implement inheritance, where higher-priority threads lower ones on send/receive; creation via tx_queue_create specifies message size (1-16 words) and depth, while tx_queue_send and tx_queue_receive handle fixed-size s with wait options, ensuring ordered delivery based on sender . Interrupt service routines (ISRs) integrate seamlessly with the through tx_isr_call, which enables nested interrupts and temporary boosting of the interrupted to prevent . This wraps ISR functions, saving and restoring context while allowing limited calls (e.g., tx_queue_send with TX_NO_WAIT) inside ISRs to avoid blocking; it supports up to 10 nesting levels depending on . Kernel behavior is customizable via the tx_user.h header file, which defines compile-time limits such as (default 32, range 32-1024, consuming 128 bytes of per 32 levels) for thread scheduling and (default 100 for 10ms ticks) for timing ; other options like control timer handling in contexts, allowing optimization for and . For inter-thread communication, a can be implemented using message queues, as demonstrated in ThreadX demos. The following illustrates a basic setup:
c
/* Producer thread */
#define QUEUE_MESSAGES 5
#define MSG_SIZE 1  // Single ULONG message

TX_QUEUE my_queue;
ULONG message;

tx_queue_create(&my_queue, "Producer Queue", MSG_SIZE * sizeof(ULONG), 
                queue_memory, QUEUE_MESSAGES);

while (1) {
    /* Produce data */
    message = produce_data();
    tx_queue_send(&my_queue, &message, TX_WAIT_FOREVER);
}

/* Consumer thread */
ULONG received_msg;

while (1) {
    tx_queue_receive(&my_queue, &received_msg, TX_WAIT_FOREVER);
    /* Consume [data](/page/Data) */
    consume_data(received_msg);
}
This example uses tx_queue_send in the producer to enqueue and tx_queue_receive in the consumer to dequeue it, with TX_WAIT_FOREVER ensuring blocking until messages are available; priority inheritance maintains guarantees if multiple producers compete.

File and Storage Systems

ThreadX incorporates specialized middleware for file and storage management tailored to environments, primarily through FileX and LevelX. FileX serves as a high-performance, FAT-compatible that supports FAT12, FAT16, FAT32, and formats, enabling robust data organization with features like long filenames up to 256 characters and hierarchical directories. It integrates directly with ThreadX via APIs such as tx_media_open for mounting storage media and fx_file_read/fx_file_write for data operations, which incorporate buffering mechanisms to optimize performance on resource-constrained devices. Fault tolerance is a core aspect of FileX, achieved through its optional Fault Tolerant Module that employs a log-based recovery system to safeguard against corruption during power interruptions. This module, enabled via fx_fault_tolerant_enable, journals updates and ensures power-fail safe operations by flushing cached sectors with fx_media_flush, which also supports wear leveling on flash media. FileX accommodates volumes up to 4 GB in typical embedded configurations, making it suitable for compact storage needs without requiring an external operating system. For safety-critical applications, FileX has been certified to IEC 61508 SIL 4, along with ISO 26262 ASIL D and IEC 62304 Class C standards. Complementing FileX, LevelX provides a lightweight wear-leveling and bad-block management layer specifically for NAND and NOR flash memories, operating as a key-value store to handle non-volatile data persistence without full file system overhead. It features automatic recovery mechanisms for fault tolerance and a multi-step update process to maintain integrity during power failures, ensuring reliable embedded storage. LevelX integrates seamlessly with FileX for enhanced flash support or can function standalone, with APIs that abstract low-level flash operations while relying on ThreadX memory pools for allocation. While not independently certified, LevelX contributes to overall storage reliability in safety-focused systems by mitigating flash wear and errors. These components find practical application in scenarios like data logging for industrial devices, where persistent storage must operate deterministically without an underlying OS, supporting media such as RAM disks, SD cards, and direct flash interfaces.

User Interface Components

GUIX serves as the primary user interface component within the ThreadX ecosystem, providing a pixel-based graphical user interface framework tailored for resource-constrained embedded systems. Designed for real-time applications, GUIX enables the creation of visually appealing and responsive UIs on displays ranging from simple monochrome screens to high-resolution color panels. It supports touch and gesture inputs, including pen-down, pen-up, drag, zoom, and flick events, allowing developers to build intuitive interactions without compromising system performance. The framework includes a comprehensive of widgets, such as buttons, checkboxes, sliders, lists, scroll wheels, radial progress bars, and sprites, which can be ized with styles for alignment, wrapping, and animations. These widgets facilitate the development of dynamic interfaces, including multi-line text inputs, drop-down menus, and chart visualizations, all optimized for environments. GUIX's rendering engine delivers anti-aliased for smooth lines and curves, advanced font management with support for and fonts, and mechanisms for consistent styling across applications. It accommodates 25 color formats, from 1-bpp to 32-bpp ARGB, ensuring with diverse displays. API support in GUIX encompasses both design-time and runtime functionalities. The gx_studio tool generates application-specific code from visual designs, streamlining UI prototyping and reducing development time. Runtime APIs, such as gx_widget_draw for custom rendering and gx_canvas_drawing_initiate for buffer management, provide fine-grained control over drawing operations and event processing. Memory efficiency is achieved through dynamic allocation from ThreadX byte pools, minimizing footprint and enabling operation on devices with limited RAM, typically under 64 KB. Integration with ThreadX occurs via an , where an internal GUIX thread handles input processing and rendering, ensuring UI responsiveness in multitasking scenarios. This leverages ThreadX's event flags for signaling between UI and application threads, maintaining . For safety-critical deployments, particularly automotive human-machine interfaces, GUIX is certified to ASIL D by SGS-TÜV Saar, confirming its suitability for high-integrity systems through 100% branch coverage testing and a dedicated safety manual.

Networking Stack

NetX Duo is the industrial-grade TCP/IP networking stack integrated with ThreadX, designed specifically for deeply embedded, real-time, and applications. It provides dual-stack support for both IPv4 and protocols, enabling seamless operation in mixed network environments. The stack implements core transport protocols including for reliable, connection-oriented communication and for lightweight, best-effort data transfer, alongside application-layer protocols such as HTTP for web services, for efficient messaging in scenarios, and DHCP for dynamic allocation. Security is embedded directly into NetX Duo, with built-in support for TLS 1.3 to enable secure encrypted connections, for IP-layer protection against threats, and mDNS for zero-configuration in local networks via . Developers interact with the stack through intuitive , such as nx_tcp_socket_create for initializing sockets and nx_packet_send for transmitting data packets, facilitating standard socket programming in resource-constrained environments. Performance optimizations include transmission to minimize memory overhead during data handling and interrupt-driven processing to achieve low-latency responses suitable for real-time systems. IPv6-specific capabilities enhance NetX Duo's suitability for modern networks, featuring stateless address autoconfiguration per RFC 4862 to simplify device integration without manual configuration, and full support including error reporting and neighbor discovery via APIs like nxd_icmp_enable. For safety-critical applications, NetX Duo has been certified to EN 50128 SIL 4 by SGS-TÜV Saar, ensuring reliability in networked systems such as rail signaling and automotive controls.

USB Support

USBX is a high-performance USB stack integrated with ThreadX, offering dual-role support for both and operations compliant with USB 2.0 and On-The-Go (OTG) protocols. It handles all standard USB transfer types, including , , , and isochronous, enabling efficient communication in resource-constrained environments. The stack supports key USB classes such as (HID) for input peripherals, Communication Device Class (CDC) variants like ACM for and ECM for Ethernet emulation, and Class (MSC) for storage access. Multiple instances of these classes can be active simultaneously, facilitating versatile applications like composite peripherals combining HID and CDC functionality. On the host side, USBX provides robust through a topology manager that retrieves device descriptors, configures hubs, and multiple concurrent USB controllers, which may take several seconds for complex . Pipe management is handled via for transfers, including abort and request functions, ensuring reliable data flow across , , and other . OTG enables dynamic role switching between and modes, with for USB on higher-speed links. For operations, USBX allows the creation of composite supporting multiple classes and configurations, along with integrated power management to optimize energy use in battery-powered systems. Key initialization APIs include ux_host_stack_initialize for setting up the host stack and ux_device_stack_class_register for registering specific classes on the device side, providing a straightforward for developers. optimizations are tailored for microcontrollers, featuring a low-memory mode that limits buffer sizes (e.g., 256 bytes for endpoints and 4 KB for ) to fit within tight RAM constraints of about 32 KB total, alongside interrupt-driven transfers for low-latency performance. The stack requires approximately 10-12 KB of ROM on the device side and 24-64 KB on the host side, with configurable parameters like maximum devices to scale resource usage. USBX is designed for safety-critical applications and has been certified by SGS-TÜV Saar to standards, applicable to medical USB peripherals and ensuring compliance for software in Class C safety levels. It also aligns with USB-IF specifications for supported classes, facilitating interoperability with operating systems like Windows, , and macOS. ThreadX mutexes can be employed briefly to protect shared USB resources during multi-threaded access.

Debugging and Tracing Tools

TraceX is a host-based analysis tool designed for debugging and tracing real-time systems built on ThreadX. It captures key runtime events such as thread state changes, calls, interrupts, and switches through a non-intrusive logging mechanism. The tool employs a on the target device to record these events without interrupting execution, enabling developers to analyze system behavior post-capture or during breakpoints. Integration of TraceX with ThreadX occurs via instrumentation, activated by defining the TX_ENABLE_EVENT_TRACE preprocessor symbol and calling tx_trace_enable() to initialize the , typically allocated as a global array (e.g., 64,000 bytes). Hooks in the services log events directly into the , with data exported to a host PC using or SWD debug interfaces for further processing. On the host, TraceX generates graphical timeline views that visualize event sequences, thread execution paths, and resource utilization, facilitating intuitive inspection of complex interactions. TraceX's analysis capabilities include detection of common issues such as priority inversions, deadlocks, and race conditions through in the trace data. It also provides performance metrics like CPU usage histograms, execution profiles, and response times, helping developers optimize scheduling and . For (SMP) configurations, TraceX supports tracing across multiple cores, correlating events from different processors in a unified view. The tool integrates seamlessly with popular integrated development environments (IDEs) such as IAR Embedded Workbench and Keil MDK, allowing trace export and analysis directly within the workflow. Its buffer-based approach ensures minimal overhead, making it suitable for non-intrusive in and safety-certified environments where halting the system is unacceptable.

Supported Platforms

Processor Architectures

ThreadX supports a wide array of architectures, enabling its deployment across diverse systems. As of 2025, it accommodates over 50 architectures through pre-built ports, with the Foundation's open-source community contributing expansions to niche microcontrollers (MCUs). The family represents one of the most extensively supported categories, encompassing over 20 variants tailored for applications. This includes the Cortex-M series (M0, M0+, M3, M4, M7, M23, M33, M55, M85) for low-power MCUs, the Cortex-A series (A5, A7, A8, A9, A12, A15, A17, A34, A35, A53, A55, A57, A65, A72, A73, A75, A76, A77, A78) for application s, and the Cortex-R series (R4, R5, R7) for systems. Earlier cores such as , , and are also compatible. Many ports integrate TrustZone for , including ARMv8-M for MCUs and ARMv8-A for application processors. RISC-V support was introduced post-2023 to align with the growing adoption of open hardware standards, covering RV32 and RV64 cores from vendors like Andes, Cypress, and Microsemi. These ports facilitate deployment on cost-effective, customizable processors increasingly used in IoT and edge devices. Beyond ARM and RISC-V, ThreadX includes ports for x86 architectures (such as Intel Pentium and XScale), MIPS variants (including 4K, 24K, 34K, 1004K series, and 64-bit 5K from Wave Computing), PowerPC (e.g., Xilinx PowerPC 405), and Renesas families (RXv1/v2/v3, V850, SH, HS, RA, RZ, Synergy). Historical ports extend to architectures like ColdFire, alongside others from vendors including Intel (NIOS II), Microchip (AVR32, PIC32), NXP (i.MX RT series), STMicroelectronics (STM32), Texas Instruments (C5000/C6000, Sitara, Tiva-C), and Xilinx (MicroBlaze, Zynq). Portability is achieved through a standardized abstraction layer in the tx_port.h header file, which defines architecture-specific configurations, alongside assembly-language implementations for critical operations like context save and restore. This modular approach minimizes porting effort for new targets. Symmetric multiprocessing (SMP) extensions enable multi-core execution on select architectures, including series and , with features for load balancing and core affinity to enhance performance in parallel workloads.

Integration and Development Environments

ThreadX supports integration with several integrated development environments () commonly used in embedded systems development. Key include IAR Embedded Workbench, which provides full support for ThreadX ports and debugging capabilities through or similar interfaces. Keil (now part of ) offers seamless integration, allowing developers to build, debug, and trace ThreadX applications on Arm-based targets. GCC-based environments, such as CDT, enable open-source builds with toolchains, while STM32CubeIDE from includes dedicated ThreadX middleware packs for code generation and configuration. Board support packages (BSPs) facilitate rapid development on hardware from major vendors. For , ThreadX integrates with STM32CubeMX, enabling auto-generated code for peripherals and RTOS initialization. NXP's MCUXpresso SDK incorporates ThreadX examples and configurators for and LPC series, streamlining project setup. Renesas provides BSPs within its e² studio and Flexible Software Package (FSP), supporting ThreadX on RA and RX families with pre-built demos for multitasking applications. ThreadX offers CMSIS-RTOS v2 API compatibility, allowing ecosystem developers to use standardized interfaces for thread management, synchronization, and timers without vendor-specific code. This layer maps ThreadX services to CMSIS primitives, easing portability across devices. Build systems for ThreadX include traditional Makefiles with Make for custom projects and support introduced after its move to the , which simplifies cross-platform compilation using toolchains like . Developers link against the ThreadX library (tx.a or tx.lib) and include headers like tx_api.h for kernel services. Migration from other RTOSes is supported through API wrappers and compatibility layers. For , a dedicated adaptation layer translates common APIs like task creation and queue operations to ThreadX equivalents. Similar wrappers exist for , minimizing code rewrites during porting. Community resources aid development, including the Eclipse ThreadX GitHub repositories with ports, samples, and getting-started guides. Forums on Stack Overflow use tags like "threadx-rtos" for troubleshooting, while the ThreadX Alliance provides access to certified builds and safety documentation for production use.

Adoption

Notable Products and Deployments

ThreadX has been deployed in Hewlett-Packard inkjet printers and all-in-one devices since the early 2000s, providing real-time control for printing and scanning operations. In , ThreadX powers the in processors starting from around 2010, handling tasks on the ARC architecture in pre-Skylake chipsets. For aerospace applications, ThreadX was used in NASA's Deep Impact mission from 2005 to 2011, managing probe control, including the High Resolution Imager, Medium Resolution Imager, and Impactor Targeting Sensor for comet impact operations. In the automotive sector, integrates ThreadX support within its processor family for systems, enabling real-time processing in and features. ThreadX appears in healthcare devices for real-time patient monitoring, as evidenced by vulnerabilities affecting these systems that targeted the RTOS. STMicroelectronics has incorporated ThreadX into the STM32MP1 series microprocessors for gateways, facilitating secure and efficient edge processing in connected devices. These deployments are supported by ThreadX's safety certifications, including for automotive and for medical applications. By 2025, Eclipse ThreadX has exceeded 12 billion deployments worldwide across various embedded systems.

Industry Applications and Usage Statistics

ThreadX has found extensive application in the automotive sector, where it supports advanced driver-assistance systems (ADAS) and electronic control units (ECUs) through its certification to ASIL D standards, enabling reliable real-time performance in safety-critical environments. In industrial and domains, it powers edge devices, leveraging pre-2023 integrations with services for seamless connectivity and constrained resource management. The RTOS is also prevalent in medical and applications, certified under for and SIL 4 for , ensuring deterministic timing in life-critical systems. Additionally, its minimal memory footprint—as small as 2 KB—makes it suitable for , including printers and wearables that require efficient, low-power operation. Usage statistics underscore ThreadX's broad adoption, with over 6.2 billion deployments as of 2019 during its early RTOS phase, reflecting strong growth in systems. By 2025, under stewardship, deployments have surpassed 12 billion devices worldwide, powering mission-critical operations across industries. The 2024 IoT and Developer Survey highlights its rising popularity, with 13% adoption among developers and increasing preference for safety-critical use cases, positioning it as a key player in ecosystems. Emerging trends include expanded support for architectures, fostering integration with open hardware initiatives to accelerate innovation in and automotive designs. Following its 2023 open-sourcing under the , proprietary licensing models have diminished, enabling broader accessibility and cost reductions for developers in resource-constrained projects.

References

  1. [1]
    eclipse-threadx/rtos-docs - GitHub
    ThreadX is an advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded applications. Among the multiple benefits ThreadX provides ...
  2. [2]
    Microsoft acquires Express Logic, accelerating IoT development for ...
    Apr 18, 2019 · Express Logic's ThreadX RTOS joins Microsoft's growing support for IoT devices and is complementary with Azure Sphere, our premier security ...
  3. [3]
    Microsoft Contributes Azure RTOS to Open Source
    Nov 21, 2023 · Eclipse ThreadX provides a vendor-neutral, open source, safety certified OS for real-time applications, all under a permissive license. It is ...
  4. [4]
    Azure RTOS transition to open-source is now complete
    Apr 4, 2024 · The Eclipse ThreadX 6.4.1 release is now available and the Eclipse ThreadX open-source project is now fully under the stewardship of the Eclipse Foundation.
  5. [5]
    Express Logic 2025 Company Profile - PitchBook
    When was Express Logic founded? Express Logic was founded in 1996. Where is Express Logic headquartered? Express Logic is headquartered in San Diego, CA.
  6. [6]
    Bill Lamie: Story of a man and his real-time operating systems
    Sep 3, 2010 · Bill's third RTOS, ThreadX, released by his new company, Express Logic, in 1997, represented, in his words, “the balanced sweet spot between ...Missing: origins E. 1996
  7. [7]
    THREADX RTOS History - RTOSX
    2019 Microsoft acquires Express Logic (THREADX and middleware). 2020 AZURE RTOS (THREADX V6). 2023 Eclipse ThreadX (THREADX V6). 2023 RTOSX offers professional ...
  8. [8]
    "Deep Impact" Probe Uses Express Logic's ThreadX® RTOS and ...
    Jul 27, 2005 · In all three controllers, ThreadX managed the scheduling of application threads, performed interrupt servicing, and passed the messages needed ...
  9. [9]
    Device Software Has 'Deep Impact' on NASA Space Mission
    Oct 10, 2005 · Well before the launch of Deep Impact, Express Logic's ThreadX was integrated with MULTI, a development environment for embedded applications ...
  10. [10]
    Microsoft acquires ThreadX RTOS developer in IoT push ...
    Apr 19, 2019 · Microsoft (Redmond, WA) has announced that it has acquired Express Logic (San Diego, CA), a provider of real-time operating systems (RTOSs) ...Missing: history | Show results with:history
  11. [11]
    Microsoft announces new capabilities for a seamless, smart and ...
    October 28, 2019 · Category: Company News ... Through our Express Logic acquisition, Azure RTOS continues to enable new intelligent capabilities.
  12. [12]
    eclipse-threadx/netxduo - GitHub
    Protocols and connectivity support are provided as addon modules within NetX Duo in addons folder. Some key modules are: azure_iot, dhcp, dns, ftp, http, mqtt, ...Issues 65 · Pull requests 7 · Security 11
  13. [13]
    New Azure RTOS collaborations with leaders in the semiconductor ...
    Apr 2, 2020 · Last October, we announced that Azure RTOS will be broadly available across Renesas' products, including the Synergy and RA MCU families. ...
  14. [14]
    Azure RTOS 6.1 release - Microsoft Community Hub
    Oct 22, 2020 · We are happy to announce that Azure RTOS 6.1 is released. This is another important milestone release after we published our source code of ...<|control11|><|separator|>
  15. [15]
    Introducing Eclipse ThreadX
    Nov 21, 2023 · Today, Microsoft announced that Azure RTOS, including all of its components, is going to be made available as the Eclipse ThreadX open source ...
  16. [16]
    Security fixes in 6.3.0 - Microsoft Q&A
    Feb 1, 2024 · Can anyone tell me what actual code changes where made in 6.3.0 to address the security issues listed in ...Missing: January | Show results with:January
  17. [17]
    The Eclipse Foundation Launches ThreadX Alliance to Champion ...
    Oct 8, 2024 · BRUSSELS – 8 October 2024 – The Eclipse Foundation, one of the world's largest open source software foundations, has announced the launch of ...
  18. [18]
    Frequently Asked Questions | The Eclipse Foundation
    Nov 16, 2024 · Eclipse ThreadX is the world's first and only permissively licensed open source embedded real-time operating system (RTOS) certified for safety-critical ...Missing: date | Show results with:date
  19. [19]
    Releases · eclipse-threadx/threadx - GitHub
    Feb 28, 2024 · Azure RTOS ThreadX 6.2.0. Oct 27, 2022. @goldscott goldscott · v6.2.0_rel.
  20. [20]
    [PDF] Azure RTOS ThreadX - Microsoft Download Center
    Chapter 1. Provides a basic overview of. ThreadX and its relationship to real-time embedded development. Chapter 2. Gives the basic steps to install.
  21. [21]
    Express Logic's New ThreadX/MT Delivers Higher Performance and ...
    With as small as a 6KB footprint and sub-microsecond interrupt response and context switch, ThreadX/MT perfectly complements the QoS mechanism in the 34K ...
  22. [22]
    [PDF] Perfecting Preemption Threshold Scheduling for Object-Oriented ...
    In doing so, we introduce the notion of effective priority inheritance and define priority ceiling and preemption threshold ceiling for ... threadx.com/ ...<|separator|>
  23. [23]
    Transitioning to ThreadX®: Event Chaining - Synergy™︎ MCU
    Jun 29, 2017 · Event chaining provides a developer with a technique for easily handling threads that rely upon multiple objects in order to continue execution.Need RTOS ThreadX Tutorial for a beginer and how to use api.h in ...ThreadX Event Flags - Forum - Synergy™︎ MCUMore results from community.renesas.comMissing: documentation | Show results with:documentation
  24. [24]
    [PDF] Event Chaining™ Enables Real-Time Systems to Respond to ...
    ThreadX provides this ability through the tx_queue_send_notify service. This ... /* event notification function prototypes used for Event-Chaining */.Missing: works | Show results with:works
  25. [25]
    Eclipse ThreadX - Open Source Real-Time Operating Systems (RTOS)
    Jul 29, 2025 · Small Footprint: Highly scalable, minimal configuration requires ~2KB ROM and ~1KB RAM.Core Kernel (threadx) · Additional Components &... · Features<|separator|>
  26. [26]
    ThreadX RTOS extends ARMv8-A 64-bit support to include SMP ...
    Oct 21, 2016 · ThreadX RTOS extends ARMv8-A 64-bit support to include SMP · Incremental processing resources · Automatic load-balancing across all cores · Ease of ...<|control11|><|separator|>
  27. [27]
    ThreadX | Witekio
    ThreadX is distributed using the permissive MIT license. This means that it can be used at no cost in a commercial product, without having to release your ...
  28. [28]
    Safety Certifications | ThreadX Alliance | The Eclipse Foundation
    Those certifications have been transferred to the Eclipse Foundation in October 2024. The components have been tested according to the following standards ...Missing: formation | Show results with:formation
  29. [29]
    ThreadX Safety Certification Sustainability Mode - Eclipse Foundation
    Jan 23, 2024 · ... ISO 26262 ASIL D and EN 50128. It is also certified by UL for compliance with UL 60730-1 Annex H, CSA E60730-1 Annex H, IEC 60730-1 Annex H ...
  30. [30]
    GitHub - eclipse-threadx/rtos-docs
    ### Summary of ThreadX Overview
  31. [31]
  32. [32]
    Express Logic | Synopsys
    Nov 13, 2024 · NetX supports TLS, DTLS, IPsec, MQTT, CoAP, LwM2M, Thread. NETX DUO is offered with full source and no run-time royalties.
  33. [33]
    Re: [threadx] Cybersecurity measures for Eclipse ThreadX
    ThreadX, when it was known as Azure RTOS, was certified by SGS-TÜV Saar for use in safety-critical systems, according to IEC-61508 SIL 4, IEC-62304 SW Safety ...<|control11|><|separator|>
  34. [34]
    CVE-2024-2452 Detail - NVD
    Mar 26, 2024 · In Eclipse ThreadX NetX Duo before 6.4.0, if an attacker can control parameters of __portable_aligned_alloc() could cause an integer wrap-around and an ...
  35. [35]
    Guide to Azure RTOS ThreadX in IoT - Nabto
    Plus, ThreadX has a feature that many other RTOS options don't, called preemption-threshold scheduling. This feature is useful enough that we'll take a ...Missing: explanation | Show results with:explanation
  36. [36]
    The Rise of RTOS: Powering the Next Generation of IoT - RTInsights
    Aug 22, 2024 · Moreover, RTOS boasts inherent security advantages, thanks to its smaller attack surface and reduced complexity compared to full-fledged systems ...
  37. [37]
    [PDF] Azure RTOS FileX User Guide - Microsoft Download Center
    This guide contains comprehensive information about Azure RTOS FileX, the Microsoft high- performance real-time file system. It is intended for the embedded ...Missing: architecture | Show results with:architecture
  38. [38]
    Eclipse ThreadX - LevelX Provides Flash Wear Leveling for ... - GitHub
    LevelX provides NAND and NOR flash wear leveling facilities to embedded applications. Since both NAND and NOR flash memory can only be erased a finite number ...
  39. [39]
    Is LevelX also safety certified? - Microsoft Q&A
    Aug 8, 2023 · LevelX does not hold any safety certifications such as TÜV or UL. LevelX is an add-on to FileX that provides wear leveling for flash memory devices.Azure RTOS safety certifications - Microsoft Q&AHow can I obtain certification reports for Azure RTOS ThreadX for ...More results from learn.microsoft.comMissing: guide | Show results with:guide
  40. [40]
    [PDF] Azure RTOS GUIX - Download Center
    In addition to the custom GUIX control structure data types, there are several special data types that are used in GUIX service call interfaces.
  41. [41]
    [PDF] Azure RTOS GUIX Studio - Renesas Community
    This guide provides comprehensive information about Azure RTOS GUIX. Studio, the Microsoft Windows-based rapid UI development environment specifically designed ...Missing: architecture details<|separator|>
  42. [42]
    Express Logic's GUIX graphical user interface run-time solutions ...
    ... ISO 26262 ASIL D, and EN 50128 SW-SIL 4 safety standards. This new certification performed by SGS-TÜV Saar is unique to the embedded industry, making GUIX ...
  43. [43]
    [PDF] Azure RTOS NetX Duo - Download Center
    This guide contains comprehensive information about Azure RTOS NetX Duo, the Microsoft high- performance IPv4/IPv6 dual network stack. It is intended for ...
  44. [44]
    [PDF] Azure RTOS USBX Device Stack - Microsoft Download Center
    This function will in turn initialize all the resources used by the USBX device stack such as ThreadX threads, mutexes, and semaphores. It is up to the ...
  45. [45]
    [PDF] Azure RTOS USBX Host Stack - Microsoft Download Center
    This function will in turn initialize all the resources used by the USBX host stack such as ThreadX threads, mutexes, and semaphores. It is up to the ...
  46. [46]
    Introduction to USBX - stm32mcu - ST wiki
    USBX is the Azure RTOS USB Host and USB Device embedded stack. It is tightly coupled with ThreadX. In some classes, it requires the FileX and NetX Duo stacks.Missing: certification | Show results with:certification
  47. [47]
    eclipse-threadx/tracex - GitHub
    With TraceX, developers can see clearly the occurrence of system events like interrupts and context switches that occur out of view of standard debugging tools.Missing: integration | Show results with:integration<|control11|><|separator|>
  48. [48]
    Debugging Azure RTOS applications using TraceX - NXP Community
    Oct 30, 2021 · Azure RTOS TraceX is Microsoft's host-based analysis tool that provides developers with a graphical view of real-time system events.Missing: integration | Show results with:integration
  49. [49]
  50. [50]
    Eclipse ThreadX is an advanced real-time operating system (RTOS ...
    Eclipse ThreadX SMP is a high-performance real-time SMP kernel designed specifically for embedded applications.Eclipse ThreadX · Issues 66 · Docs · Getting started guidesMissing: Foundation | Show results with:Foundation
  51. [51]
  52. [52]
    how to port the threadX RTOS on the cortex R5? - Stack Overflow
    Dec 22, 2023 · I tried to port Threadx RTOS to the cortex-R5 of the zynq UScale+. I copied the port directory corresponding to the R5 and the common Threadx .h ...Missing: layer tx_port.
  53. [53]
    Re: [threadx-dev] SMP porting question - Eclipse Foundation
    I'm currently working on porting ThreadX to Risc-V 64 bit with SMP support and have been looking at the existing SMP ports to guide me. Whilst looking at ...
  54. [54]
    Eclipse ThreadX - Additional samples - GitHub
    A collection of complete sample workspaces and projects for popular development boards from ST, NXP ... IDEs and toolchains, including IAR, ARM, STM32CubeIDE,
  55. [55]
    Introduction to THREADX - stm32mcu - ST wiki
    The ThreadX core provides the common RTOS features, such as management of threads, semaphores, mutexes and SW timers. The block diagram below shows the ...
  56. [56]
    Using Azure RTOS (ThreadX) with MCUXpresso SDK
    Nov 17, 2020 · Azure RTOS is a comprehensive suite of multithreading facilities, middleware and Windows tools for developing embedded IoT applications. It ...
  57. [57]
  58. [58]
  59. [59]
    Express Logic: Real-Time Embedded Systems - EDN Network
    Nov 26, 2013 · The company was founded in 1996 by Bill Lamie, who did all of the initial products, including the company's flagship ThreadX operating system.Missing: E. | Show results with:E.
  60. [60]
    Mitigating an Intel Management Engine Vulnerability - Trend Micro
    Nov 22, 2017 · In Pre-Skylake (ME 11.X) chipsets, it was built on ARC architecture with RT-OS ThreadX, web server, and JavaVM engine running applets in J ...
  61. [61]
    AM6548: Microsoft Azure ThreadX's - Processors forum - TI E2E
    Nov 24, 2020 · It should be possible to run ThreadX, Windows 10 IOT or other commercial RTOS on this platform on the standard ARM cores in the Sitara/Jacinto ...Partnership with Microsoft on Azure RTOS platform - Processors forumAM263P4: Threadx RTOS integration - Arm-based microcontrollersMore results from e2e.ti.com
  62. [62]
    FDA Issue Warning on Cybersecurity Vulnerabilities in Medical ...
    Oct 3, 2019 · ThreadX (by Microsoft) ... Specific Beckton Dickinson (BD), Drager, GE Healthcare, Philips Healthcare, and Spacelabs products are also impacted by ...
  63. [63]
    Introduction to THREADX - stm32mpu - ST wiki
    ThreadX supports the same standard groups of APIs as most RTOS's such as FreeRTOS. It is possible to use either the CMSIS-RTOS wrapping layer or the ThreadX ...Missing: 2000s | Show results with:2000s
  64. [64]
    Eclipse ThreadX | projects.eclipse.org
    Oct 12, 2023 · Eclipse ThreadX is an embedded development suite including a small but powerful real-time operating system that provides reliable, ultra-fast performance.Missing: 6.3 | Show results with:6.3
  65. [65]
    C SDK and Embedded C SDK usage scenarios - Azure IoT
    Jan 10, 2025 · This approach makes it simpler for developers to use the APIs and connect their Eclipse ThreadX-based devices to Azure IoT. Eclipse ThreadX is a ...
  66. [66]
    FPGA Hardware Design for Real-Time Solutions | Concept Reply
    ... low memory footprint. It ... It can benefit industrial control equipment, medical devices, and general consumer electronics such as printers and wearables.
  67. [67]
    Express Logic's ThreadX(r) RTOS Surpasses 6.2 Billion Total ...
    Express Logic's ThreadX is an Industrial Grade RTOS that provides embedded developers with priority-based preemptive scheduling, optimized context switching, ...
  68. [68]
  69. [69]
    The Eclipse Foundation Unveils 2024 IoT & Embedded Developer ...
    Dec 3, 2024 · ... FreeRTOS (29%) top the charts, but growth in Zephyr (21%) and ThreadX (13%) points to rising interest in performance and safety-critical RTOS ...Missing: Times | Show results with:Times
  70. [70]
    Bringing Open Source Hardware and Software Together
    Dec 16, 2024 · The ThreadX journey at the Eclipse Foundation began in November 2023 when Microsoft contributed this trusted Real-Time Operating System (RTOS) ...Missing: date | Show results with:date