QP/C (Quantum Platform in C) is a lightweight, open-source real-time embedded framework (RTEF) designed for building modern embedded software systems composed of asynchronous, event-driven Active Objects (actors). As a member of the QP series of frameworks, QP/C, along with QP/C++, is meticulously quality-controlled, well-documented, and commercially licensed.

Advantages and Features of QP/C
Safe Concurrency Model
The QP framework series implements the Active Object computation model, which is safer than the traditional “shared state concurrency” based on explicit mutexes and blocking management of RTOS threads. The Active Object model supports and enforces the following best practices in concurrent programming:
- • Isolate and bind data to the threads of Active Objects. Threads should encapsulate their private data and other resources without sharing them with the rest of the system.
- • Communicate asynchronously between Active Object threads using Event objects. Asynchronous events allow threads to operate truly independently without blocking each other.
- • Active Object threads should respond to incoming events throughout their lifetime, thus their main line should be an event loop that processes events one by one (until completion), avoiding any concurrency hazards within the Active Object thread.
This architecture also provides a higher level of abstraction and the correct abstractions to effectively apply hierarchical state machines, modeling, and code generation to deeply embedded real-time systems.
Hierarchical State Machines
The behavior of Active Objects in QP/C is specified using hierarchical state machines (UML state diagrams). The framework supports manual coding of UML state machines in C, as well as automatic code generation through the free QM modeling tool.
Built-in Real-Time Kernel
The QP/C framework can run independently on microcontrollers without a traditional RTOS. The framework includes a series of built-in real-time kernels, such as the non-preemptive QV kernel, the non-blocking preemptive QK kernel, and the preemptive, dual-mode QXK kernel that provides all the functionalities of a traditional RTOS. Native QP ports and ready-to-use examples are available for mainstream CPU families (such as ARM Cortex-M).
Compatibility with Traditional RTOS/OS
QP/C can also collaborate with traditional RTOS (such as ThreadX, embOS, FreeRTOS, uC/OS-II, and Zephyr) as well as (embedded) Linux (POSIX) and Windows.
Maturity and Popularity
The QP framework has a continuous development history of 20 years, over 400 commercial licensees, and many more open-source users, making it one of the most popular products in its class. It powers countless electronic products, from implanted medical devices to complex weapon systems.
Documentation and Support
The online HTML documentation for QP/C is located at: https://www.state-machine.com/qpc
The offline HTML documentation is located in the html subfolder of the distribution, and can be viewed by opening html/index.html.
For technical issues, users can post on the free support forum at SourceForge.net, where they typically receive a response the same day. For commercial licensees, Quantum Leaps also offers commercial support services.
Conclusion
QP/C is a powerful, mature, and stable real-time embedded framework that meets the needs of various complex embedded applications for both beginners and professional developers. Its safe concurrency model, rich feature set, broad platform support, and comprehensive documentation and community support make it an ideal choice for building modern embedded systems.
Project Address:https://github.com/QuantumLeaps/qpc