PTE Users Guide

Since PTE is designed to be cross platform, and embedded OS's vary widely in their build methodology, there is no "high level" build structure included.  Rather, each port is responsible for providing this.  The sections below describe using PTE for a specific platform.

While pthreads is strictly speaking a C API, PTE does include limited support for C++ specific features, specifically exceptions.  This functionality was primarily inherited from the original code base (Pthreads-win32) and has been only preliminarily tested.

An important component of PTE is the test library that is included.  Each platform contains build files as described below to build the test suite.

DSP/BIOS

Texas Instruments provides DSP/BIOS as a RTOS to be used on their series of digital signal processors.  Two project files are included: one for the library itself and one for the test suite.  These projects (and CDB/TCF files) were targeted towards the C6000 simulator, as this is where I did all of the development.  When building applications that use the PTE library, you will need to include pthreads.h and will also need to provide a path to pte-types.h (originally located in platforms/dspbios/pte-types.h).  This file contains definitions of structures and types (e.g. pid_t) that are required by pthreads but not supplied by DSP/BIOS

PSP OS

This is the operating system used by the Sony PSP.  The PSP toolchain is gcc based and thus shares many similarities with a "typical" UNIX system, including the build system.  PTE includes Makefiles for the library itself as well as the test suite.  Note that these Makefiles are pretty rudimentary as I am not anywhere close to being a Makefile expert.  Thus, once the library is built it will be necessary to copy the library itself, pthread.h and pte-types.h to the appropriate places in your projects build structure.  The PSP toolchain includes a pthread.h header in the base distribution (why, I'm not sure) - it is important that you use the pthread.hsupplied with PTE rather than the one in the toolchain.