QP/C 8.1.4
Real-Time Event Framework
Loading...
Searching...
No Matches
Ports

Native Ports (Built-in Kernels)

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:

Code Structure

All QP/C ports are located in sub-directories of the <qp>/ports/ top-level directory, with the hierarchical organization outlined below:

<qp>                     // QP/C or QP/C++ installation directory
+---ports/               // ports directory
|   |
|  [1a]-arm-cm/          // ports for ARM Cortex-M
|   |   +---qk/              // ports for preemptive QK kernel
|   |   |   +---armclang/    // port with ARM-Clang (Compiler Version 6) toolchain
|   |   |   +---gnu/         // port with GNU-ARM toolchain
|   |   |   +---iar/         // port with IAR toolchain
|   |   +---qv/          // ports for non-preemptive QV kernel
|   |   \---qxk/         // ports for dual-mode QXK kernel
|   |
|  [1b]-arm-cr/          // ports for ARM Cortex-R
|  . . .
|  [1c]-msp430/          // ports for TI MSP430
|  [1d]-risc-v/          // ports for RISC-V
|  . . .
|   |
|  [2a]-embos/           // ports for embOS RTOS (3rd-party RTOS)
|  [2b]-freertos/        // ports for FreeRTOS (3rd-party RTOS)
|  [2c]-threadx/         // ports for ThreadX RTOS (3rd-party RTOS)
|  [2d]-uc-os2/          // ports for uC/OS-2 RTOS (3rd-party RTOS)
|  . . .
|   |
|  [3a]-posix/           // port to POSIX (multithreaded)
|   |
|  [3b]-posix-qv/        // port to POSIX (single-threaded)
|   |
|  [4a]-win32/           // port to Win32 (multithreaded)
|   |
|  [4b]-win32-qv/        // port to Win32 (single-threaded)
|
[2z]-zephyr/             // port to Zephyr RTOS (3rd-party RTOS)

[1a-d] Native Ports are located in sub-directories named after the CPU architecture, such as arm-cm for ARM Cortex-M or arm-cr for ARM Cortex-R. Under that directory, the sub-directories qk and qv contain ports for the QK and QV kernels, respectively.

[2a-d] Ports to 3rd-party RTOS are located in sub-directories named after the RTOS, such as embos for embOS RTOS or freertos for FreeRTOS, etc.

[3a-b] Ports to the POSIX OS Standard are located in sub-directories named posix for the POSIX API (multi-threaded variant) and posix-qv for the POSIX API (single-threaded) variant.

[4a-b] Ports to the Win32 API are are located in sub-directories named win32 for the Win32 API (multi-threaded variant) and win32-qv for the Win32 API (single-threaded) variant.

[2z] Port to Zephyr RTOS is an exception in that it is located outside the <qp>/ports directory and instead it is located directly in <qp>/zephyr. This code organization is required for QP/C to be recognized as a Zephyr Module↑.

Remarks
The QP/C "port" to the PC-Lint-Plus static analysis tool, which used to be co-located in the <qp>/ports directory, is now available in the QP/C Extras.
Remarks
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 relevant to you.

Native Ports (Built-in Kernels)