threadx Snapshot
  • Industry Leader
  • Over 5.4 Billion Deployments
  • Small-footprint
  • Fast, deterministic execution
  • Simple, easy-to-use
  • Advanced technology
  • Multicore support (AMP & SMP)
  • Memory Protection via ThreadX Modules
  • Fastest Time-To-Market
  • Royalty Free
  • Full, highest-quality source code
  • Pre-certified by TUV and UL to safety standards
  • MISRA compliant
  • Supports most popular architectures
    (see below)
  • Supports most popular tools
ThreadX Architecture Support
  • ARM
    • ARM7, ARM9, ARM11
    • Cortex-M, Cortex-R, Cortex-A
    • Cortex-Axx 64-bit
  • AndesCore
  • Analog Devices
    • Blackfin BF5xx, BF6xx, BF7xx
    • SHARC
  • Cadence
    • Xtensa
    • Diamond
  • CEVA
    • TeakLite-III
  • EnSilica
    • eSi-RISC
  • NXP
    • ARM (LPC, i.MX, Kinetis)
    • 68K
    • Coldfire
    • PowerPC
  • Imagination
    • MIPS32 4Kx, 24Kx, 34Kx, 1004K
    • microAptiv, interAptiv, proAptiv
    • M-Class
  • Intel
    • ARM (Cyclone)
    • NIOSII
    • x86PM
  • Microchip
    • ARM (SAM)
    • AVR32
    • PIC24
    • PIC32
  • Renesas
    • ARM (Synergy, RZ)
    • H8/300H
    • RX
    • SH
    • V850
  • Silicon Labs
    • EMF32
  • ST
    • STM32
  • Synopsis
    • ARC 600, 700
    • ARC EM, ARC HS
  • Texas Instruments
    • ARM (Tiva-C, Sitara, OMAP
    • C5xx
    • C6xx
  • Xilinx
    • ARM (Zynq)
    • MicroBlaze
    • PowerPC

ThreadX

{title}

Industry Leading ThreadX RTOS

ThreadX is Express Logic's advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded, real-time, and IoT applications. ThreadX provides advanced scheduling, communication, synchronization, timer, memory management, and interrupt management facilities. In addition, ThreadX has many advanced features, including its picokernel™ architecture, preemption-threshold™ scheduling, event-chaining,™ execution profiling, performance metrics, and system event tracing. Combined with its superior ease-of-use, ThreadX is the ideal choice for the most demanding of embedded applications. As of 2016, ThreadX has over 5.4 Billion deployments, in a wide variety of products, including consumer devices, medical electronics, and industrial control equipment.

Most deployed RTOS - over 5.4 Billion deployments!

ThreadX has over 5.4 Billion deployments worldwide, according to the leading M2M market intelligence firm VDC Research.    More...

ThreadX has over 5.4 Billion deployments worldwide, according to the leading M2M market intelligence firm VDC Research. The popularity of ThreadX is a testament to its reliability, quality, size/performance, advanced features, ease-of-use, and overall time-to-market advantages.

“We have followed the growth trajectory of ThreadX in the wireless and IoT markets since the company’s founding, and are increasingly impressed by the widespread industry adoption of ThreadX,” said Chris Rommel, Executive Vice President, VDC Research.

VDC Research

Small-footprint

ThreadX only needs a remarkably small 2KB instruction area and 1KB of RAM for its minimal footprint    More...

ThreadX only needs a remarkably small 2KB instruction area and 1KB of RAM for its minimal footprint. This is achieved largely as a result of its non-layered picokernel™ architecture and automatic scaling. Automatic scaling means that only the services (and supporting infrastructure) used by the application are included in the final image at link-time.

Here are some typical ThreadX size characteristics:


ThreadX
Service
Typical Size
in Bytes
Core Services (Requires) 2,000
Queue Services 900
Event Flag Services 900
Semaphore Services 450
Mutex Services 1,200
Block Memory Services 550
Byte Memory Services 900

Please contact us for a comprehensive data sheet with size and performance estimates for your particular architecture info@expresslogic.com.

Fast, deterministic execution

ThreadX achieves a sub-microsecond context switch on most popular processors and is significantly faster overall than other commercial RTOSes.    More...

ThreadX achieves a sub-microsecond context switch on most popular processors and is significantly faster overall than other commercial RTOSes. In addition to being fast, ThreadX is also highly-deterministic - ThreadX achieves the same fast performance if there are 200 threads ready or just 1.

Here are some typical performance characteristics of ThreadX:

  • Fast Boot: ThreadX boots in less than 120 cycles.
  • Optional Removal of basic error checking: Basic ThreadX error checking can be skipped at compile-time. This can useful when application code is verified and no longer requires error checking on each parameter. Note that this can be done on a compilation unit rather than system-wide.
  • Picokernel™ Design: Services not layered on each other thus eliminating unnecessary function call overhead.
  • Optimized Interrupt Processing: Only scratch registers are saved/restored upon ISR entry/exit, unless preemption is necessary.
  • Optimized API Processing:
ThreadX
Service
Service
Time
Thread Suspend 0.6us
Thread Resume 0.6us
Queue Send 0.3us
Queue Receive 0.3us
Get Semaphore 0.2us
Put Semaphore 0.2us
Context Switch 0.4us
Interrupt Response 0.0us - 0.6us

Performance figures based on typical processor running at 200MHz.

Please contact us for a comprehensive data sheet with size and performance estimates for your particular architecture info@expresslogic.com.

Simple, easy-to-use

ThreadX is very simple to use. The ThreadX API is both intuitive and highly functional. The API names are made of real words    More...

ThreadX is very simple to use. The ThreadX API is both intuitive and highly functional. The API names are made of real words and not the “alphabet soup” and/or the highly abbreviated names that are so common in other RTOS products. All ThreadX APIs have a leading “tx_” and follow a noun-verb naming convention. Furthermore, there is a functional consistency throughout the API. For example, all APIs that suspend have an optional timeout that functions in an identical manner for APIs.

Building a ThreadX application is easy. The application need to include tx_api.h, call tx_kernel_enter from main, define the tx_application_define function and create one thread, define the thread entry point function, and link against the ThreadX library (typically tx.a). That simple set of requirements is best illustrated with this simple 26 line ThreadX example:

code

ThreadX also boasts the very best documentation. Please review our ThreadX User Guide and see for yourself!

Advanced technology

ThreadX is advanced technology! The most notable is preemption-threshold scheduling,  which is unique to ThreadX    More...

ThreadX is advanced technology! The most notable is preemption-threshold scheduling,  which is unique to ThreadX and has been the subject of extensive academic research, including the following:

Wang, Concordia University, and Saksena, University of Pittsburgh, on Scheduling Fixed-Priority Tasks with Preemption Threshold http://www.cs.utah.edu/~regehr/reading/open_papers/preempt_thresh.pdf

Using Preemption-Threshold Scheduling to Cut Overhead While Meeting Deadlines, by Dr. Alexander G. Dean, Center for Efficient, Secure and Reliable Computing, Dept. of Electrical and Computer Engineering, North Carolina State University. http://www4.ncsu.edu/~sgupta20/Paper_PTS.pdf

Here is an overview of the advanced features available in ThreadX:

  • Complete/Comprehensive Multitasking Facilities
    • Threads, Application Timers, Message Queues, Counting Semaphores, Mutexes, Event Flags, Block and Byte Memory Pools
  • Priority-based preemptive scheduling
  • Priority Flexibility - Up to 1024 priority levels
  • Cooperative scheduling
  • Preemption-threshold™ - Unique to ThreadX, helps reduce context switches and help guarantee schedulability (per academic research)
  • Memory protection via ThreadX Modules
  • Fully Deterministic
  • Event Trace - Capture last “n” system/application events
  • Event Chaining™ - Register an application-specific “notify” callback function for each ThreadX communication or synchronization object
  • ThreadX Modules with optional Memory Protection
  • Run-Time Performance Metrics
    • Number of thread resumptions
    • Number of thread suspensions
    • Number of solicited thread preemptions
    • Number of asynchronous thread interrupt preemptions
    • Number of thread priority inversions
    • Number of thread relinquishes
  • Execution Profile Kit (EPK)
  • Separate Interrupt Stack
  • Run-time Stack Analysis
  • Optimized Timer Interrupt Processing

Multicore support (AMP & SMP)

Standard ThreadX is often used in an Asymmetric Multiprocessing fashion, where a separate copy of ThreadX and the application (or Linux) execute on each core    More...

Standard ThreadX is often used in an Asymmetric Multiprocessing fashion, where a separate copy of ThreadX and the application (or Linux) execute on each core and communicate with each other via shared memory or some other inter-processor communication mechanism. This is the most typical multicore configuration using ThreadX and can be the most efficient if the application is able to properly load the processors.

For environments where loading the processors is highly dynamic, ThreadX SMP is available.  ThreadX SMP performs dynamic load balancing across “n” processors and allows all ThreadX resources (queues, semaphores, event flags, memory pools, etc.) to be accessed by any thread on any core. ThreadX SMP enables the complete ThreadX API and introduces several new API’s to allow for thread core exclusion.

Memory Protection via ThreadX Modules

An add-on product called ThreadX Modules enables one or more application threads to be bundled into a “Module” that can be dynamically loaded and run    More...

An add-on product called ThreadX Modules enables one or more application threads to be bundled into a “Module” that can be dynamically loaded and run (or executed in place) on the target. Modules enable field upgrade, bug fixing, and program partitioning to allow large applications to occupy only the memory needed by active threads.

Modules also have a completely separate address space from ThreadX itself. This enables ThreadX to place memory protection (via MPU or MMU) around the Module such that accidental access outside the module will not be able to corrupt any other software component.

For more information on ThreadX Modules, please visit the ThreadX Modules page.

Fastest Time-To-Market

ThreadX is easy to install, learn, use, debug, verify, certify and maintain.    More...

ThreadX is easy to install, learn, use, debug, verify, certify and maintain. As a result, ThreadX has been the leading time-to-market RTOS for the last seven consecutive years per the Embedded Market Forecasters (EMF) surveys. The surveys consistently show that 70% of designs using ThreadX get to market on time – surpassing all other RTOSes.

The following are some reasons for our consistent time-to-market advantage:

  1. Quality Documentation - please review our ThreadX User Guide and see for yourself!
  2. Complete Source Code Availability
  3. Easy-to-use API
  4. Comprehensive and Advanced Feature Set
  5. Broad 3rd Party Tools Integration – especially IAR’s Embedded Workbench™

Royalty Free

ThreadX is licensed royalty-free, for the lowest possible manufacturing cost. There are five basic types of licenses   More...

ThreadX is licensed royalty-free, for the lowest possible manufacturing cost. There are five basic types of licenses and the ability to create a custom license for unique situations. Please see the licensing page for more information.

Full, highest-quality source code

From the very beginning, ThreadX was designed to be a commercial grade RTOS distributed with full C source code.   More...

From the very beginning, ThreadX was designed to be a commercial grade RTOS distributed with full C source code. Throughout the years, ThreadX source code has set the bar in quality and ease of understanding. In addition, the convention of having one function per-file, provides for easy source navigation. The following is an example of the TheadX tx_thread_identify.c function:

Source Code

ThreadX conforms to strict coding conventions, including the requirement that every line of C code has a meaningful comment. In addition, the ThreadX source has been certified to highest standards. Please contact us today for a full source evaluation.

Pre-certified by TUV and UL to many safety standards

ThreadX has been certified by SGS-TUV Saar for use in safety-critical systems, according to IEC-61508 SIL 4, IEC-62304 SW Safety Class C,    More...

ThreadX has been certified by SGS-TUV Saar for use in safety-critical systems, according to IEC-61508 SIL 4, IEC-62304 SW Safety Class C, ISO 26262 ASIL D and EN 50128. The certification confirms that ThreadX can be used in the development of safety-related software for the highest safety integrity levels of IEC-61508, IEC-62304, ISO 26262 and EN 50128 for the “Functional Safety of electrical, electronic, and programmable electronic safety-related systems.” SGS-TUV Saar, formed through a joint venture of Germany’s SGS-Group and TUV Saarland, has become the leading accredited, independent company for testing, auditing, verifying and certifying embedded software for safety-related systems worldwide. The industrial safety standard IEC 61508, and all standards that are derived from it, including IEC-62304, ISO 26262 and EN 50128, are used to assure the functional safety of electrical, electronic, and programmable electronic safety-related medical devices, process control systems, industrial machinery, automobiles and railway control systems.

SGS TUV SAAR

ThreadX® has been recognized by UL for compliance with UL 60730-1 Annex H, CSA E60730-1 Annex H, IEC 60730-1 Annex H, UL 60335-1 Annex R, IEC 60335-1 Annex R, and UL 1998 safety standards for software in programmable components. UL is a global, independent, safety-science company with more than a century of expertise innovating safety solutions, ranging from the public adoption of electricity to breakthroughs in sustainability, renewable energy, and nanotechnology.

CRU us

Artifacts (Certificate, Safety Manual, Test Report, etc.) associated with the TUV and UL certifications are available for sale. Please contact us for more details at info@expresslogic.com

In cases where the application needs additional certification, a certification service is available through Express Logic for providing turn-key certification to various standards using the actual hardware platform and even covering the application code. Please contact us for more details on our certification service.

MISRA compliant

ThreadX source code is MISRA-C:2004 and MISRA C:2013 compliant.   More...

ThreadX source code is MISRA-C:2004 and MISRA C:2013 compliant. MISRA C is a set of programming guidelines for critical systems using the C programming language. The original MISRA C guidelines were primarily targeted toward automotive applications; however, MISRA C is now widely recognized as being applicable to any safety critical application. ThreadX is compliant with all “required” and “mandatory” rules of MISRA-C:2004 and MISRA C:2012. ThreadX is also compliant with all but three “advisory” rules. Please contact us for more information.

Supports most popular architectures

ThreadX runs on most popular 32/64-bit microprocessors, out-of-the-box, fully tested and fully supported   More...

ThreadX runs on most popular 32/64-bit microprocessors, out-of-the-box, fully tested and fully supported, including the following:

Architectures

Supports most popular tools

ThreadX supports most popular embedded development tools, including:   More...

ThreadX supports most popular embedded development tools, including IAR’s Embedded Workbench™, which also have the most comprehensive ThreadX Kernel Awareness available. Additional tool integration includes, GNU (GCC), ARM DS-5/uVision®, Green Hills MULTI®, Wind River Workbench™, Imagination Codescape, Renesas e2studio, Metaware SeeCode™, NXP CodeWarrior, Lauterbach TRACE32®, TI Code-Composer Studio, Analog Devices CrossCore

** Please note that all timing and size figures listed are estimates and may be different on your development platform.