Modern Embedded Systems Programming with QP Real-Time Event Frameworks
Many embedded developers say they use event-driven programming and state machines, yet their implementations often stop at message queues, event loops, and switch statements. Building true event-driven, hard-real-time systems requires a more advanced architectural foundation.
This workshop introduces the QP/C and QP/C++ Real-Time Event Frameworks—mature, lightweight, open-source frameworks that implement the Active Object (Actor) model and modern Hierarchical State Machines (UML statecharts). Participants will learn how this reusable architecture avoids shared-state concurrency, enables deterministic real-time behavior, and provides a scalable infrastructure for extensible embedded applications.
Through hands-on exercises on both a host PC and an STM32 NUCLEO board, attendees will explore the whole workflow of designing and implementing event-driven systems with QP. Topics include:
- Building and running QP examples to get started with the framework
- Implementing Hierarchical State Machines manually in C or C++
- Modeling UML statecharts graphically and generating code automatically
- Using time events to manage timing without blocking
- Executing Active Objects for hard real-time performance:
- with QP’s built-in kernels (non-preemptive QV, preemptive non-blocking QK)
- with traditional RTOSes (FreeRTOS, Zephyr)
- with general-purpose OSes (embedded Linux, Windows)
- Event delivery mechanisms: direct posting and publish–subscribe
- Event memory management: immutable events and mutable events with user-defined parameters
- Software tracing for debugging, optimization, and monitoring
- Trace-based testing of event-driven QP applications
By the end of the workshop, participants will understand what it truly means to architect embedded software around events, state machines, and non-blocking concurrency—and how QP frameworks and the ecosystem of the surrounding tools make this approach practical, maintainable, and certifiable.


No comments or questions yet. Be the first to start the conversation!