QP/C++  8.0.3
Real-Time Event Framework
Loading...
Searching...
No Matches
Downloading & Installing QP/C++

Getting StartedQP/C++ Tutorial

Downloading QP/C++ in QP-Bundle

The most recommended way of obtaining QP/C++ is by downloading the QP-bundle↑, which includes QP/C++ as well as other QP frameworks and also the QM modeling tool↑ and the QTools collection↑. The main advantage of obtaining QP/C++ bundled together like that is that you get all components, tools and examples ready to go.

QP-bundle downloads


Note
If you are allergic to installers and GUIs or don't have administrator privileges you can also download and install QP/C++ separately from the QP/C++ GitHub repository, as described in the next section.

Downloading QP/C++ from GitHub

Go to the QP/C++ release page on GitHub↑, and choose the QP/C++ version number you wish to download. You should select the latest QP/C++ version, unless you have a very specific reason to go with an older release.

QP/C++ downloads from GitHub

[1] QP/C++ framework ZIP archive (contains HTML documentation and 3rd-party code for the examples)

[2] QP/C++ framework CMSIS-Pack (see the next section)

Remarks
The QP/C++ GitHub repository contains the 3rd_party and examples folders as git submodules. Therefore, while cloning the qpcpp repository directly, it is recommended to do this as follows:
git clone https://github.com/QuantumLeaps/qpcpp --recurse-submodules --depth 1

Downloading QP/C++ as a CMSIS-Pack

The QP/C++ framework is available as a CMSIS-Pack↑, which you can obtain either in the KEIL Pack Installer↑ or directly from the QP/C++ release directory on GitHub (see previous section).

QuantumLeaps qpc and qpcpp packs in KEIL Pack Installer


QuantumLeaps qpc and qpcpp packs in IAR Pack Installer


QP/C++ Installation Folder

The following annotated directory tree lists the top-level directories provided in the standard QP/C++ distribution.

qpcpp
+---include // platform-independent QP/C++ header files
|
+---src // platform-independent QP/C++ source files
| +---qf // QF active object framework source files
| +---qv // QV non-preemptive kernel files
| +---qk // QK preemptive, non-blocking kernel files
| +---qxk // QXK preemptive, non-blocking/blocking kernel files
| +---qs // QS software tracing (target-resident component)
|
+---ports // platform-specific QP/C++ ports
|
...... the following folders can be deleted if not needed ...........
|
+---examples // QP/C++ examples
+---3rd_party // 3rd-party code used in the examples
Remarks
The examples/ and 3rd_party folders contain many Example Projects, which are specifically designed to help you learn to use QP/C++ and to serve you as starting points for your own projects.

QP License Certificate File

Every QP/C++ commercial license comes with the QP License Certificate file, which stores the commercial license information (for the QM modeling tool↑ and the QSPY software tracing host utility↑). The QP License Certificate file is always named exactly the same as the corresponding commercial license and has the extension .qlc. For example, a commercial license with the license number QPC-SP-230416A will be accompanied by the license file named QPC-SP-230416A.qlc.

Note
If you are a commercial licensee and for some reason you did not receive your QP License Certificate file, please send email with your license number to support@state-machine.com↑ to request your QP License Certificate.

The QP License Certificate file is a plain-text file, which you can open in any editor and inspect (but you cannot change without corrupting it). Here is an example of a QP License Certificate file:

File name: QPC-SP-230416A.qlc

Bamboozle Technologies, Inc.
qpc
2025-08-17

Copyright (c) 2024-2025 Bamboozle Technologies, Inc. All rights reserved.

SPDX-License-Identifier: LicenseRef-QL-single-product

THIS SINGLE PRODUCT LICENSE IS VALID SOLELY FOR THE FOLLOWING PRODUCT:
"eGizmo Shuffle 2nd Generation"
#20EB458E46F910356133D2A0B24E3F14A2236969

The QP License Certificate file contains the following information:

  • The license number (the file name of the certificate file)
  • The name of the commercial Licensee (company or individual)
  • The licensed QP Framework type(s) (qpc/qpcpp)
  • The expiration date of the Support Term↑ associated with the license
  • The licensed Single Product / Product Line/etc.↑ of the Licensee
  • The cryptographic hash over the contents of the file and the file name, which prevents tampering with it.

Getting StartedQP/C++ Tutorial