QP is a family of lightweight, open source software frameworks for
building responsive and modular real-time embedded applications as
systems of cooperating, event-driven active objects (actors). The QP
family consists of QP/C, QP/C++, and QP-nano frameworks, which are
all strictly quality controlled, superbly documented, and
All QP frameworks can run on "bare-metal" single-chip microcontrollers,
completely replacing a traditional Real-Time Operating System (RTOS).
Ports and ready-to-use examples are provided for all major CPU
families. QP/C and QP/C++ can also work with a traditional OS/RTOS,
such as: POSIX (Linux, QNX), Windows, VxWorks, ThreadX, MicroC/OS,
The behavior of active objects is specified in QP by means of
hierarchical state machines (UML statecharts). The frameworks support
manual coding of UML state machines in C or C++ as well as fully
automatic code generation by means of the free graphical QM modeling
The QP frameworks and the QM modeling tool receive over 30,000
downloads a year (not even counting downloads of QP ports) and are
being used in millions of products worldwide. The commercial licensees
include some of the largest companies in their respective markets,
such as: medical devices, defense & aerospace, robotics, consumer
electronics, wired and wireless telecommunications, industrial
automation, transportation, and many more.
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 use any open source license and you do not violate
Please visit www.state-machine.com/qp for more information about QP.
The QP state machine frameworks make also excellent targets for
*automatic code generation*, which is provided by a graphical modeling
tool called QM (QP Modeler). QM is a free, cross-platform, graphical
UML modeling tool for designing and implementing real-time embedded
applications based on the QP active object frameworks. QM is available
for Windows, Linux, and Mac OS X.
QM provides intuitive diagramming environment for creating good looking
hierarchical state machine diagrams and hierarchical outline of your
entire application. QM eliminates coding errors by automatic generation
of compact C or C++ code that is 100% traceable from your design.
Please visit www.state-machine.com/qm for more information about QM.
All types of QP frameworks (QP/C, QP/C++, and QP-nano) can be easily
adapted to various microprocessor architectures and compilers. Adapting
the QP software is called porting and all QP frameworks have been
designed from ground up to make the porting easy.
A large, steadily growing number of QP Development Kits (QDKs) for
various processors and compilers are available for immediate download.
Currently supported processors are:
* ARM Cortex-M0/M3 (Texas Instruments, ST, Atmel, NXP)
* ARM7/ARM9 (Texas Instruments, ST, Atmel, NXP)
* MSP430 (Texas Instruments)
* TMS320C28x (Texas Instruments)
* AVRmega (Atmel)
* AVRxmega (Atmel)
* M16C / R8C / M32C (Renesas)
* H8 (Renesas)
* ColdFire (Freescale)
* HC08 (Freescale)
* Nios-II (Altera)
* 8051 / 80251 (Silicon Labs, Atmel)
* PIC18 (Microchip)
* PIC24 / dsPIC (Microchip)
* PSoC (Cypress)
Please visit www.state-machine.com/downloads for more information about
Supported Operating Systems/RTOSs
The QP/C and QP/C++ frameworks can also work on top of conventional
operating systems/RTOSs. Currently supported OSs/RTOSs are:
* Linux (POSIX)
* Windows / WindowsCE (Microsoft)
* VxWorks (Wind River)
* ThreadX (Express Logic)
* FreeRTOS.org (Richard Barry)
* µC/OS-II (Micrium)
* QNX (QNX)
Please visit www.state-machine.com/downloads for more information
about available QDKs.
The QP frameworks are available under the dual licensing business model,
in which both the open source software distribution mechanism and
traditional closed source software distribution models are combined.
QP is open source software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 2 of the License, or (at your
option) any later version.
Alternatively, this program may be distributed and modified under the
terms of Quantum Leaps commercial licenses, which expressly supersede
the GNU General Public License and are specifically designed for
licensees interested in retaining the proprietary status of their code.
This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
The QM graphical modeling tool is free to download and use, but is not
open source. The QM tool is provided under the terms of a simple
End-User License Agreement (EULA).
Quantum Leaps Websites: http://www.state-machine.com
toll-free: 1-866-450-LEAP (US Eastern Standard Time)