General Comments
The QP/C++ framework can be easily adapted to various operating systems, processor architectures, and compilers. Adapting the QP/C++ software is called porting and the QP/C++ framework has been designed from the ground up to make porting easy.
The QP/C++ distribution contains many QP/C++ ports, which are organized into the three categories:
Port Code Structure
Starting with QP/C++ release 5.4.0, all available ports are bundled into the QP/C++ download, as opposed to being distributed as separate QP Development Kits (QDKs). The main benefit is of this approach is that it greatly reduces chances of mistakes in combining the mainline QP/C++ code with various QDKs. The downside is that the QP/C++ distribution becomes quite large and that ports cannot be added or updated independently from the QP/C++ baseline code.
All ports are located in sub-directories of the ports top-level folder, with the hierarchical organization outlined below:
- 
ports/  
- 
arm-cm/ — Native ports for ARM-Cortex-M (bare-metal)       A   
- 
qk/ — Port to the preemptive QK kernel  
- 
arm — Port to ARM-KEIL toolset  
- 
gnu — Port to GNU toolset  
- 
iar — Port to IAR toolset  
- 
ti — Port to TI/CCS toolset  
 
- 
qv/ — Port to the cooperative QV kernel  
- 
arm — Port to ARM-KEIL toolset  
- 
gnu — Port to GNU toolset  
- 
iar — Port to IAR toolset  
- 
ti — Port to TI/CCS toolset  
 
- 
qxk/ — Port to the blocing QXK kernel  
- 
arm — Port to ARM-KEIL toolset  
- 
gnu — Port to GNU toolset  
- 
iar — Port to IAR toolset  
 
 
- 
ucos-ii/ — Port to uCOS-II (3rd-party RTOS)       B   
- 
arm-cm — Port to ARM-Cortex-M  
- 
arm — build with ARM toolset  
- 
iar — build with IAR toolset  
 
 
- 
win32/ — Port to Win32 (Windows)       C   
- 
Debug/ — Debug build configuration for VC++ toolset  
- 
dbg/ — Debug build configuration for MinGW toolset  
- 
Release/ — Release build configuration for VC++ toolset  
- 
rel/ — Release build configuration for MinGW toolset  
- 
QSpy/ — Spy build configuration for VC++ toolset  
- 
spy/ — Spy build configuration for MinGW toolset  
 
- 
posix/ — Port to POSIX (e.g., Linux)       C  
- 
dbg/ — Debug build configuration for GNU toolset  
- 
rel/ — Release build configuration for GNU toolset  
- 
spy/ — Spy build configuration for GNU toolset  
 
 
- 
A Native Ports are located in sub-directories named after the CPU architecture, such as arm-cm for ARM Cortex-M. Under that directory, the sub-directories qk and qv contain ports for the QK and QV kernels, respectively.  
- 
B Ports for 3rd-party RTOS are located in sub-directories named after the RTOS, such as ucos-ii for uCOS-II RTOS. Under that directory, the sub-directories, such as arm-cm, contain examples for the specified CPU architecture, such as ARM Cortex-M here.  
- 
C Ports for 3rd-party OS are located in sub-directories named after the OS, such as win32 for the Win32 API (Windows OS). (NOTE: The builds for desktop operating systems, such as Windows or Linux contain the pre-build QP libraries for the Debug, Release, and Spy build configurations).  
- Note
- Because the QP distribution contains all ports, the number of sub-directories and files in the ports folder may seem daunting. However, knowing the structure of the ports folder, you can simply delete the sub-directories that are not interesting to you.
Next: Native (Bare-Metal) Ports