Beyond the RTOS
Embedded software developers are independently re-discovering patterns for building concurrent software that is safer and easier to understand than “naked” threads of a Real-Time Operating System (RTOS). These best practices universally favor non-blocking, asynchronous, event-driven, encapsulated state machines instead of the "free threading" approach with a traditional RTOS.
While these concepts can be implemented manually on top of the "naked" RTOS threads, a more productive way is to use an active object (actor) framework, which provides the overall architecture that inherently supports and automatically enforces the best practices of concurrent programming.
The QP™ family of active object frameworks from Quantum Leaps provides such a lightweight, reusable architecture designed specifically for deeply embedded real-time systems. The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled and thoroughly documented. The frameworks are licensed as GPL open source as well as commercially.
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 QM™ graphical modeling tool.
All QP frameworks contain a selection of built-in real-time kernels and can run on bare-metal microcontrollers, completely replacing a conventional RTOS. Native QP ports and ready-to-use examples are provided for major CPU families, such as ARM Cortex-M. QP/C and QP/C++ frameworks can also be used with many traditional RTOSes and desktop OSes (such as ThreadX, uC/OS-II, as well as Windows and Linux).
The QP frameworks are especially suitable for safety-critical applications, where the software must go through stringent certification process to ensure maximum safety and reliability. To manage the process, the industry increasingly turns to formal methods, such as software modeling as the means to maintain and objectively prove traceability from requirements specification, through system design, to final implementation. The QM modeling and code generation tool, based on the UML concepts of hierarchical state machines (UML statecharts) and active objects, directly supports the modern modeling approach. Additionally, the Q-SPY software tracing instrumentation embedded in the QP frameworks provides the ready-to-use software tracing infrastructure for testing and validation.To learn more, please visit our website today