- Notifications
You must be signed in to change notification settings - Fork274
QP/C Real-Time Event Framework/RTOS implements event-driven Active Object (Actor) model combined with Hierarchical State Machines. Specifically designed for embedded systems (e.g., ARM Cortex-M MCUs).
License
QuantumLeaps/qpc
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
View QP/C Revision History at:https://www.state-machine.com/qpc/history.html
NOTE: If you're interested in the latest QP/C version from GitHub,it is recommended that you clone this repo like that:
git clone https://github.com/QuantumLeaps/qpc --recurse-submodules --depth 1However, the easiest and most recommended way ofgetting started with QP/C is to downloadthe QP-bundle, asdescribed below.
QP/C real-time event framework (RTEF) is a lightweight implementation ofthe asynchronous, event-drivenActive Object (a.k.a. Actor) model of computationspecifically designed for real-time embedded systems, such as microcontrollers (MCUs).QP/C is both a software infrastructure for building applications consistingof Active Objects (Actors) and a runtime environment for executing the ActiveObjects in a deterministic, real-time fashion. Additionally, QP/C Frameworksupports Hierarchical State Machines with which to specify the behavior ofActive Objects [UML 2.5], [Sutter:10], [ROOM:94]. The QP/C Framework can beviewed as a modern, asynchronous, and truly event-driven real-time operatingsystem (RTOS).
QP/C framework is part of the larger QP family, consisting of the followingQP editions (please also seeQP Frameworks Feature Comparison):
| QP Edition | Language | API | Safety Functions | Certification Artifacts | Licensing |
|---|---|---|---|---|---|
| QP/C | C (C11) | same as SafeQP/C | Selected Assertions | Req/Arch/Design | open-source & commercial |
| QP/C++ | C++ (C++17) | same as SafeQP/C++ | Selected Assertions | Req/Arch/Design | open-source & commercial |
| SafeQP/C | C (C11) | same as QP/C | All Safety Functions | SafeQP/C Certification Kit | commercial |
| SafeQP/C++ | C++ (C++17) | same as QP/C++ | All Safety Functions | SafeQP/C++ Certification Kit | commercial |
TheSafeQP/C andSafeQP/C++ frameworks were originally derived from QP/C and QP/C++,respectively, but were extensively reengineered for the safety market using compliantSoftware Safety Lifecycle (SSL). In this process, the QP framework functional model has beensubjected to a full Hazard and Risk Analysis, which identified all areas of weakness withinthe functional model and API. These findings led to the creation of Safety Requirements and riskmitigation by Safety Functions, which were subsequently implemented, verified, and validated.The SafeQP frameworks are accompanied by the "SafeQP Certification Kits", which providedevelopers with ready-to-use artifacts, enabling them to save time, mitigate risk, and reducecosts during application certification for safety-critical devices in the industrial, medical,aerospace, and automotive industries. Pleasecontact Quantum Leapsfor more information about the SafeQP frameworks and the "Certification Kits".
NOTE: The SafeQP/C edition remains fully API- and functionally compatible with thecorresponding standard QP/C framework. This ensures existing QP/C Applications can transitionseamlessly to SafeQP/C without requiring any modifications. SafeQP/C edition retains QP/CFrameworks' hallmark features: a small memory footprint, excellent efficiency, and hardreal-time performance.
The most recommended way to get started with QP/C is bydownloading the QP-bundle,which includes QP/C as well as theQM modeling tool and theQTools collection. The main advantage of obtaining QP/C bundledtogether is that you get all components, tools, andexamples all ready to go.
NOTE:Perhaps the most important fact to remember is that in embedded systems,nothing works until everything works. This means that you should always startwith aworking system and gradually evolve it, changing one thing at a timeand making sure that it keeps working every step of the way.
The providedQP/C example projects, such as the super-simpleBlinky, or a bit more advancedDining Philosophers Problem (DPP),allow you to get started with aworking project rather than starting fromscratch. You should also always try one of the unmodified examples on oneof the very inexpensive evaluation boards (such asSTM32 NUCLEO-U545RE)that it was designed for,before attempting to immediately adapt the projectsto your specific hardware. Only once an example project is built and runs onthe evaluation board, can you use it as a starting point for your specific hardwareand software development.
Video: "Getting Started with QP Real-Time Event Frameworks"provides instructions on how to download, install, and get started with QP.
AppNote: "Getting Started with QP Real-Time Event Frameworks"contains also a tutorial, in which you build a simple "Blinky" application.
"QP/C Tutorial"describes a series of progressively advanced QP/C example applications.
The open source GPL distribution of QP/C can be augmented by the"QP/C Extras", which provide more advanced QP/C features, such as:
- QS software tracing component (QP Spy)
- QXK real-time kernel component
- Static-analysis configuration and automation scripts for PC-Lint-Plus (MISRA-C:2025 compliance)
- Test suite (based on theQUTest trace-based test harness)that demonstrates 100% lines of code and 100% MC/DC code coverage for QP/C.
NOTE: The"QP/C Extras" arelicensed commercially onlyand available to the commercial licensees with the active Support Term. Please contactQuantum Leaps technical support to get the matching"QP/C Extras"for the public QP/C version.
NOTE: The"QP/C Extras" are alsoavailable for evaluation(upon request).
The QP/C real-time event framework is licensed under thedual licensing model, withthe following licensing options:
NOTE: The GPL requires that all modifications to the original codeas well as your application code (Derivative Works as defined in theCopyright Law) must also be released under the terms of the GPLopen source license.
- Closed-source licensing under one ofQuantum Leaps commercial licenses,which are specifically designed for users interested in retaining theproprietary status of their code.
NOTE: If your company has a policy forbidding open source in your product,all QP frameworks can be licensed commercially, in which case you don't useany open source license and you do not violate your policy.
NOTE: TheSafeQP frameworks and the accompanying "Certification Kits"are licensed commercially only.
The online HTML documentation for thelatest version of QP/C is locatedat:https://www.state-machine.com/qpc
The offline HTML documentation forthis particular version of QP/Cis located in the sub-folderhtml (included in theQP/C releases).To view the offline documentation, open the filehtml/index.htmlin your web browser.
- Free Support Forum
- Bug Reports
- Feature Requests
- Quantum Leaps website
- Quantum Leaps licensing
- info@state-machine.com
If you like this project, please give it a star (in the upper-right corner of your browser window):
About
QP/C Real-Time Event Framework/RTOS implements event-driven Active Object (Actor) model combined with Hierarchical State Machines. Specifically designed for embedded systems (e.g., ARM Cortex-M MCUs).
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.

