QP real-time embedded frameworks (RTEFs) provide lightweight, modern event-driven architecture based on active objects (actors) and hierarchical state machines. The matching QM model-based design tool and other host-based tools complement the QP frameworks by supporting graphical modeling, code generation, software tracing and unit testing for event-driven embedded software. Visit https://www.state-machine.com for more information.
The QP RTEFs can run on bare-metal single-chip microcontrollers, completely replacing a traditional RTOS. The frameworks contain a selection of built-in real-time kernels (RTOS kernels), such as the cooperative QV kernel, the preemptive non-blocking QK kernel, and the unique preemptive, dual-mode (blocking/non-blocking) QXK kernel. Native QP ports and ready-to-use examples are provided for ARM Cortex-M (M0/M0+/M3/M4F/M7) as well as other CPUs.
The QP RTEFs can also work with many traditional RTOSes and desktop OSes, such as Linux and Windows.
Features
- Lightweight Real-Time Embedded Frameworks (RTEFs) based on event-driven active objects (actors), which are safer and more extensible than the traditional "naked" RTOS threads
- Simple-to-use coding techniques for hierarchical state machines (UML statecharts), with which to implement the behavior of active objects
- Free, QM modeling tool for drawing UML statecharts and automatic code generation based on QP frameworks
- Efficient and thread-safe event-driven mechanisms for active objects to communicate, such as direct event passing and publish-subscribe
- Selection of built-in RTOS kernels to run the QP applications, such as the cooperative QV kernel, the preemptive non-blocking QK kernel, and the preemptive blocking QXK kernel
- Software tracing and unit testing specifically designed for event-driven software
- Compliant with MISRA-C:2004 (QP/C and QP-nano) and MISRA-C++:2008 (QP/C++)
- Book "Practical UML Statecharts in C/C" with detailed design study of the QP framework, application notes, articles, user manuals, and blog
License
Other License, GNU General Public License version 3.0 (GPLv3)User Reviews
-
nglazerdev said it all - I couldn't have said it better. I also have used this on several medical device projects, all bare metal, one class III and one class II. QM takes a while to learn but is completely worth it. QP is the best state machine tool there is.
-
It looks complex, actually it is, but it has what you will need. The collection comes with a ready architecture. What you only have to do is to understand the framework and design your application, incrementally. It is worth to learn. It is not an extraordinary, non-standart tool. It is a real software engineering implementation.
-
With many details said by different people, this project seems to be so complete I can't add except it is perfect. Greatest thanks to developers.
-
QP and all of the associated tools are great. I have used QP/C++ in multiple projects; on bare metal TI chips and in Linux on the i.MX6. It perfectly captures and combines model-based generative programming, hierarchical state machines, the actor model, and reactive event-based programming. It is well worth the time to learn the framework and the associated concepts. It greatly reduces the boilerplate code and design work needed to do even complex projects. QP is lightweight, fast, and has a small footprint, as well as being appropriate for safety critical systems. Support for QP is very good with quick and in-depth responses from the community and Quantum Leaps. I highly recommend QP!
-
A Master piece. It worth well the spent time to learn it. Once done, so powerful and natural for an embedded programmer whose state machines are the basic tool. After using MicroCOS-II for a while, I use QPC++ on QK kernel for 5 years for a critical project and I can't imagine doing otherwise. Everything falls at the right place on the right time : the concept, the framework, the kernel (QK) and the associated tools are of first class (a bit less for QM in team developed projects). Yes it is different, but it's as different as the wrong way is compared to the right way of doing things. The support is so great, so clear and so FAST ! Not convinced, please read the introduction papers on the state-machine.com site.
Additional Project Details
Intended Audience
Aerospace, Healthcare Industry, Telecommunications Industry, Developers, Engineering, AutomotiveProgramming Language
C++, CRelated Categories
C++ Frameworks, C++ Operating System Kernels, C++ Embedded Systems Software, C Frameworks, C Operating System Kernels, C Embedded Systems SoftwareRegistered
Find a Partner
![QP/QM Training](http://a.fsdn.com/con/icons/qp/qpc@sf.net/metadata/qp_training.png)
QP/QM Training
Quantum Leaps offers an on-site training "Modern Embedded Systems Programming with QP™ Frameworks and QM™ Modeling Tool". This 2- to 3-day training uses hands-on exercises combined with instruction to illustrate the concepts underlying the QP active object frameworks and how they are applied in embedded systems programming requiring hard real-time performance. Upon completion of the two-day training, participants have good understanding of event-driven systems, skills in designing and implementing UML state machines manually in C or C++ and graphically with the QM modeling tool, and the ability to build their own QP applications. Additionally, upon completion of the three-day training, participants gain understanding of the real-time kernel options built-into the QP frameworks, learn how to reuse behavior with sub-machines, find out how to apply software tracing to debug and optimize their event-driven code and how to apply unit testing to active objects and state machines.
Add-ons & Plugins
![QM visual model based design tool](http://a.fsdn.com/con/img/enterprise/icons/addon_default.png)
QM visual model based design tool
![QTools Collection](http://a.fsdn.com/con/img/enterprise/icons/addon_default.png)
QTools Collection
![QP/Spy Software Tracing](http://a.fsdn.com/con/img/enterprise/icons/addon_default.png)
QP/Spy Software Tracing
![QUTest unit testing](http://a.fsdn.com/con/img/enterprise/icons/addon_default.png)