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 IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D, UL/IEC 60730, UL/IEC 60335, UL 1998, and EN 50128 SW-SIL 4
  • MISRA-C:2004 and MISRA C:2012 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 SOC, Arria 10 SOC)
    • NIOSII
    • x86PM
  • Microchip
    • ARM (SAM)
    • AVR32
    • PIC24
    • PIC32
  • Renesas
    • ARM (Synergy, RZ)
    • H8/300H
    • RX
    • SH
    • V850
  • Silicon Labs
    • EFM32
  • ST
    • STM32
  • Synopsys
    • ARC 600, 700
    • ARC EM, ARC HS
  • Texas Instruments
    • ARM (Tiva-C, Sitara, OMAP)
    • C5xx
    • C6xx
  • Xilinx
    • ARM (Zynq)
    • MicroBlaze
    • PowerPC

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.