QP/C++  6.9.3
Real-Time Embedded Framework

About the QP Port to uC/OS-II

This directory contains a generic platform-independent QP/C port to uC/OS-II V2.92.

Typically, you should not need to change the files in this directory to adapt the QP-uC/OS port on any CPU/Compiler to which uC/OS-II has been ported, because all the CPU and compiler specifics are handled by the uC/OS-II RTOS.

Currently, the port has been tested only on ARM Cortex-M3 and M4F.

uC/OS-II Source and ARM Cortex-M3/M4 Ports

The uC/OS-II V2.92 source code and ports are located in 3rd_party/ucos-ii. Please make sure to read about uC/OS-II licensing in the README file found in this directory.

The official Micrium ARM-Cortex-M ports have been modified by Quantum Leaps to remove the dependencies on the Micrium's uC-CPU and uC-LIB components, and instead to inter-operate with the Cortex Microcontroller Software Interface Standard (CMSIS).

Using this QP Port to uC/OS-II

The example projects for this port are located in examples/ucos-ii/arm-cm/dpp_ek-tm4c123gxl.

Currently, ARM-KEIL and IAR-ARM toolsets are supported (in the arm and iar sub-directories within this example project).

The example projects use this port by directly including the QP source code (and this port) in the application projects. There is no QP library to build.

However, this port can also be used as a library, in which case you need to build the QP library yourself and include in your project.

QP Source Files Needed in this QP Port

Whether you use this QP port as source files or as a library, it is important to note that not all QP soruce files should be included. Here is the list of QP source files needed:

| +-qep_hsm.c
| +-qep_msm.c
| +-qf_act.c
| +-qf_defer.c
| +-qf_dyn.c
| +-qf_ps.c
| +-qf_qeq.c
| +-qf_qmact.c
| +-qf_time.c
| |
| +-qs.c        - included only in the Spy build configuration
| +-qs_fp.c     - included only in the Spy build configuration
| +-ucos-ii
| | +-qf_port.c
Specifically, the QP source files qf_actq.c and qf_mem.c must NOT be included in the build, because this functionality is taken from uC/OS-II.

The QP/C/C++ ports and examples for uC/OS-II are described in the Quantum Leaps Application Note QP and uC/OS-II.

Application Note: QP and uC/OS-II

Next: Ports to Third-Party OS