QP-nano  6.0.1
Ports

General Comments

The QP-nano framework can be easily adapted to various operating systems, processor architectures, and compilers. Adapting the QP-nano software is called porting and the QP-nano framework has been designed from the ground up to make porting easy.

The QP-nano distribution contains many QP-nano ports, which are organized into the three categories:

  • Native Ports adapt QP-nano to run on bare-metal processors "natively", using one of the built-in kernels (QV or QK)
  • 3rd-Party OS Ports adapt QP-nano to run on top of a 3rd-Party Operating System (OS), such as Windows or Linux.

Port Code Structure

Starting with QP-nano release 5.4.0, all available ports are bundled into the QP-nano 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-nano code with various QDKs. The downside is that the QP-nano distribution becomes quite large and that ports cannot be added or updated independently from the QP-nano 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
          • dbg — Debug build configuration
          • rel — Release build configuration
          • spy — Spy build configuration
        • gnu — Port to GNU toolset
        • iar — Port to IAR toolset
      • qv — Port to the cooperative QV kernel
        • arm — Port to ARM-KEIL toolset
          • dbg — Debug build configuration
          • rel — Release build configuration
          • spy — Spy build configuration
        • gnu — Port to GNU toolset
        • iar — Port to IAR toolset

    • win32-qv — Port to Win32-QV (Windows) B
    • posix-qv — Port to POSIX-QV (Linux, BSD, etc.) B
  • 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 OS are located in sub-directories named after the OS, such as win32-qv for the Win32-QV (Windows with QV-type scheduler).
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