Modern Embedded Systems Programming with QP Real-Time Event Frameworks
Many embedded developers say they use eventdriven programming and state machines, yet their implementations often stop at message queues, event loops, and switch statements. Building true eventdriven, hardrealtime systems requires a more advanced architectural foundation.
This workshop introduces the QP/C and QP/C++ RealTime Event Frameworks—mature, lightweight, opensource frameworks that implement the Active Object (Actor) model and modern Hierarchical State Machines (UML statecharts). Participants will learn how this reusable architecture avoids sharedstate concurrency, enables deterministic real-time behavior, and provides a scalable infrastructure for extensible embedded applications.
Through handson exercises on both a host PC and an STM32 NUCLEO board, attendees will explore the whole workflow of designing and implementing eventdriven 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 realtime performance:
- with QP’s builtin kernels (nonpreemptive QV, preemptive nonblocking QK)
- with traditional RTOSes (FreeRTOS, Zephyr)
- with generalpurpose 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
- Tracebased testing of eventdriven QP applications
By the end of the workshop, participants will understand what it truly means to architect embedded software around events, state machines, and nonblocking concurrency—and how QP frameworks and the ecosystem of the surrounding tools make this approach practical, maintainable, and certifiable.
