File | Date | Author | Commit |
---|---|---|---|
LICENSES | 2022-08-11 |
![]() |
[6d0dc2] 7.0.1 |
doxygen | 2022-10-07 |
![]() |
[c24b74] 7.1.2 |
examples | 2022-10-07 |
![]() |
[c85262] 7.1.2 |
include | 2022-10-18 |
![]() |
[bd2f89] 7.1.2 |
ports | 2022-10-19 |
![]() |
[a5e647] update ports/esp-idf/qf_port.h |
src | 2022-10-07 |
![]() |
[87e493] 7.1.2 |
test | 2022-10-06 |
![]() |
[b1fefd] 7.1.2 |
zephyr | 2022-08-29 |
![]() |
[7ad3fa] 7.1.0 |
.gitignore | 2022-10-05 |
![]() |
[5027e8] 7.1.2 |
.gitmodules | 2022-08-11 |
![]() |
[6d0dc2] 7.0.1 |
README.md | 2022-08-12 |
![]() |
[899b4e] 7.0.2 |
qpc.qm | 2022-10-18 |
![]() |
[bd2f89] 7.1.2 |
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 recommened that you clone this repo like that:
git clone https://github.com/QuantumLeaps/qpc --recurse-submodules --depth 1
Alternatively, you can also download the latest
QP/C Release.
The most recommended way of obtaining QP/C is by downloading the
QP-bundle, which includes QP/C
as well as 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/C Tutorial"
describes a series of progressively advanced QP/C example applications.
Video: "Getting Started with QP Real-Time Embedded Frameworks"
provides instructions on how to download, install, and get started with QP.
AppNote: "Getting Started with QP Real-Time Embedded Frameworks"
contains also a tutorial, in which you build a simple "Blinky" application.
QP/C (Quantum Platform in C) is a lightweight, open source
Real-Time Embedded Framework (RTEF) for building modern embedded
software as systems of asynchronous, event-driven active objects
(actors). The [QP/C] framework is a member of a [QP] family consisting of
[QP/C] and [QP/C++] frameworks, which are strictly quality controlled,
thoroughly documented, and commercially licensable.
The [QP] framework family is based on the Active Object (actor)
design pattern, which inherently supports and automatically enforces the
following best practices of concurrent programming:
Keep data isolated and bound to active objects' threads. Threads should
hide (encapsulate) their private data and other resources, and not
share them with the rest of the system.
Communicate among active object threads asynchronously via event
objects. Using asynchronous events keeps the threads running truly
independently, without blocking on each other.
Active object threads should spend their lifetime responding to incoming
events, so their mainline should consist of an event-loop that handles
events one at a time (to completion), thus avoiding any concurrency hazards
within an active object thread itself.
This architecture is generally safer, more responsive and easier to
understand and maintain than the shared-state concurrency of a conventional
RTOS. It also provides higher level of abstraction and the correct
abstractions to effectively apply modeling and code generation to
deeply embedded real-time systems.
The behavior of active objects is specified in QP/C by means of
Hierarchical State Machines (UML statecharts). The framework
supports manual coding of UML state machines in C as well as automatic
code generation by means of the free QM modeling tool.
The QP/C framework can run on bare-metal single-chip microcontrollers,
completely replacing a traditional RTOS. The framework contains a selection
of built-in real-time kernels, such as the cooperative QV kernel, the
preemptive non-blocking QK kernel, and the preemptive, blocking QXK kernel
that provides all the features you might expect from a traditional RTOS.
Native QP ports and ready-to-use examples are provided for major CPUs, such
as ARM Cortex-M (M0/M0+/M3/M4/M7).
QP/C can also work with a traditional RTOS, such as ThreadX, FreeRTOS, embOS,
uC/OS-II and TI-RTOS, as well as with (embedded) Linux (POSIX) and Windows.
With 20 years of continuous development, over 350 commercial licensees,
and many times more open source users worldwide, the QP™ frameworks are the
most popular such offering on the market. They power countless electronic
products ranging from implantable medical devices to complex weapon systems.
QP/C is licensed under the sustainable dual licensing model,
in which both the open source software distribution mechanism and
traditional closed source software distribution models are combined.
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 your policy.
The online HTML documention for the latest version of QP/C is located
at: https://www.state-machine.com/qpc
The offline HTML documentation for this particular version of QP/C
is located in the sub-folder html. To view the offline documentation,
open the file html/index.html in your web browser.
If you like this project, please give it a star (in the upper-right corner of your browser window):