- Small-footprint (small as 2KB, automatic scaling)
- Fast execution (sub microsecond context switch)
- Supports all popular processors and tools (see below)
- TraceX system analysis support
- Advanced Technology:
- Preemption-Threshold™
- Event Chaining™
- Performance Metrics
- Execution Profiling
- Run-time and Static Stack Analysis
- Multicore Support (SMP and AMP)
- Downloadable Application Modules
- Memory Protection for Downloadable Application Modules
- Extensive ThreadX ecosystem
- Safety Certifications (DO-178B, FDA510(k), IEC61508, etc)
- Deployed in over 1,000,000,000 devices
- Full Source Code
- Royalty-Free
- ARM
- Atmel
- BlackFin
- CEVA-TeakLite-III
- ColdFire/68K
- Critical Link MityDSP/MityARM
- Energy Micro EFM32
- Freescale
- Fujitsu FM3
- G-Series
- Hitachi H8/300H
- Infineon XMC
- Leon3
- M-CORE
- MicroBlaze
- Microchip PIC24/dsPIC
- Microchip PIC32
- MIPS
- Nios II
- NXP
- Power Architecture
- Renesas RX
- Renesas SH
- Renesas V8xx
- SHARC
- ST Microelectronics STM32
- StarCore
- StrongARM
- Synopsys ARC
- TI ARM
- TI MSP430
- TMS320C54x
- TMS320C6x
- Univers A2P
- Win32
- x86/x386
- Xilinx ARM
- XScale
- Xtensa/Diamond
Compatibility for POSIX
Compatibility Kit for POSIX Users
Compatibility Kit Overview
The POSIX Compatibility Kit is designed for current POSIX customers. The kit defines the basic POSIX pthread services, with some limitations, and utilizes ThreadX® primitives underneath. The new POSIX compatibility layer should have very high performance, since the Compatibility Kit utilizes internal ThreadX primitives and bypasses basic ThreadX error checking. However, the application will achieve even greater performance and size benefits if a complete conversion to ThreadX is performed.
Compatibility Kit Source
The Compatibility Kit source code is designed for simplicity economy of code. Each supported POSIX function is contained in its own file. Each file has a clear and descriptive name which allows for easy source navigation. Using separate files for each function will ensure that no dead code from unused functionality will be linked into the final application image. By including pthread.h, as the POSIX standard requires, the supported POSIX API function prototypes will be imported into the source file. The ThreadX Compatibility kit does not require any target port specific features and will work with the vast collection of target microprocessors currently supported by ThreadX.”
Compatibility Kit Documentation
The Compatibility Kit User Guide provides an overview of the porting process, including various caveats and pitfalls to watch out for. In addition, each covered POSIX Subroutine is documented, including information about supported/unsupported options, limitations, deviations, and suggestions on how to workaround any limitations.
Compatibility Kit Services
The current release of the Compatibility Kit supports the following calls:
pthread related Subroutines:
sched_yield, pthread_create, pthread_detach, pthread_join,
pthread_equal, pthread_exit, pthread_self, pthread_attr_destroy,
pthread_attr_getdetachstatem, pthread_attr_setdetachstate,
pthread_attr_getinheritsched, pthread_attr_setinheritsched,
pthread_attr_getschedparam, pthread_attr_setschedparam,
pthread_attr_getschedpolicy, pthread_attr_setschedpolicy,
pthread_attr_init, phread_attr_getstackaddr,
phread_attr_setstackaddr, pthread_attr_getstacksize,
pthread_attr_setstacksize, pthread_attr_getstack, pthread_attr_setstack,
pthread_setcancelstate, pthread_setcanceltype, pthread_cancel, pthread_yield,
pthread_setschedparam, pthread_getschedparam, pthread_testcancel, pthread_once
Semaphore related Subroutines:
sem_close, sem_getvalue, sem_open, sem_post, sem_trywait, sem_unlink, sem_wait sem_init, sem_destroy
Conditional Variable related Subroutines:
pthread_cond_destroy, pthread_cond_init, pthread_cond_broadcast, pthread_cond_signal, pthread_cond_timedwait, pthread_cond_wait
Message Queue related Subroutines:
mq_send, mq_receive, mq_unlink, mq_close, mq_open
Mutex related Subroutines:
pthread_mutexattr_gettype, pthread_mutexattr_settypetype,
pthread_mutexattr_destroy, pthread_mutexattr_init,
pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock,
pthread_mutex_unlock, pthread_mutex_trylock,
pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol, pthread_mutexattr_getpshared, pthread_mutexattr_setpshared,
pthread_mutex_timedlock
Compatibility Kit Error Handing
There are two "error handling" functions defined in tx_posix.c and used throughout the Compatibility Kit, as follows:
posix_internal_error, posix_error_handler
In general this routine is called when a basic usage error occurs. This may be used as a place to catch errors that are not detected if the application source is not checking the return status. The default processing for this routine is a simple spin loop.
Demonstration System
The file posix_demo.c contains a demonstration system that utilizes POSIX services. This Demo application will demonstrate some of the basic OS objects of POSIX such as: pthreads, Semaphores, and Message Queus. This demo application should be used as an example of how to integrate the Compatibility Kit into your application.
Future Compatibility Kit Phases
Please get in touch with us for next phases of this Compatibility Kit.
Trademarks
ThreadX is a registered trademark of Express Logic, Inc. POSIX Compatibility Kit is a trademark of Express Logic, Inc.

