Home > Speakers >

Miro Samek

Quantum Leaps founder and CEO Dr. Miro Samek is an expert on programming modern real-time embedded (RTE) systems. His practical books about UML state machines, active objects (actors), and real-time embedded frameworks (RTEFs) are among the most popular on the market. Miro has also published dozens of technical articles for Embedded Systems Programming/Design, Dr. Dobb's Journal, and a column for C/C++ Users Journal. Recently, Miro has been teaching the popular "Modern Embedded Systems Programming" course on YouTube. His extensive industry experience ranges from safety-critical software development at GE Medical Systems through real-time embedded software design at two Silicon Valley companies specializing in GPS technologies. Software he wrote continues to power billions of embedded devices. Miro earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany).

Modern Embedded Programming with Hierarchical State Machines and Active Objects

Status: Available Now

Perhaps you've heard about hierarchical state machines (UML statecharts), modeling tools and automatic code generation, but have never tried them or seen them used in practice.

This presentation will show you, step-by-step, the process of designing and implementing a fun "Fly 'n' Shoot" game to run on an embedded ARM Cortex-M board as well as on your PC.

Specifically, you will see how to partition a problem into loosely coupled, event-driven components called active objects and then how to design interactions among them using sequence diagrams.

Next, you will see how to elaborate the internal behavior of identified active objects with modern hierarchical state machines.

And finally, you will see how the state machines are implemented in C and how this code can be generated automatically.

The session will utilize hands-on demonstrations using EFM32 Pearl-Gecko ARM Cortex-M4 board, the QP/C real-time embedded framework and the QM modeling and code-generation tool.

Go to Session


Live Q&A - Modern Embedded Programming with Hierarchical State Machines and Active Objects

Status: Available Now

Live Q&A with Miro Samek for the talk titled Modern Embedded Programming with Hierarchical State Machines and Active Objects

Go to Session


Modern Embedded Software Goes Beyond the RTOS (2020)

Status: Available Now

Some of the most difficult problems with real-time and embedded programing are related to concurrent code execution as well as code organization, which all too often degenerates into "spaghetti code". These problems are usually intermittent, subtle, hard-to-reproduce, hard-to-isolate, hard-to-debug, and hard-to-remove. They pose the highest risk to the project schedule.

This session presents a set of best practices of concurrent programming, which are collectively known as the active object (or actor) design pattern. In this pattern, applications are built from event-driven, non-blocking, asynchronous, encapsulated threads (active objects), with the internal behavior of each active object controlled by a state machine.

While active objects can be implemented manually on top of a traditional RTOS, a better way is to use an active object framework. You will see how this leads to inversion of control, enables architectural reuse, and allows the framework to automatically enforce the best practices.

In the second part, the session will introduce modern hierarchical state machines as the powerful "spaghetti reducers". You will see how state machines complement active objects and enable graphical modeling and automatic code generation.

The session will utilize hands-on demonstrations using EFM32 Pearl-Gecko ARM Cortex-M4 board, the QP/C real-time embedded framework and the QM modeling and code-generation tool.

Go to Session