Miro Samek
Dr. Miro Samek is the founder and CEO of Quantum Leaps, LLC (state-machine.com). His practical books about UML state machines, active objects (actors), and real-time embedded frameworks (RTEFs) are among the most popular on the market. Dr. Samek 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, Dr. Samek 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 (yes, thousands of millions) of embedded devices. Dr. Samek earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany).
less
InterestsView All (11)
Uploads
Papers by Miro Samek
This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications. Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control (Hollywood Principle), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts.
The lightweight QP RTEF goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microcontroller completely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware.
The accompanying website to this book (state-machine.com/psicc2) contains complete open source code for QP and the free QM graphical modeling tool for QP, ports to popular processors, including ARM Cortex-M, PIC32, MSP430, PIC24, etc., as well as QP ports to operating systems, such as Linux (POSIX) and Windows.
The course is specifically designed not just to be watched, but to be actively followed along on your own computer (Windows based PC) and a small, self-contained, very inexpensive evaluation board. This companion web-page provides the project downloads that you can open in a specific embedded toolchain and run on your PC at home.
The goal of the course is not just to teach C--other sources do it already quite well. But there are virtually no courses that would step down to the machine level and show you exactly what happens inside a microcontroller.
So, starting from Lesson 1 you will actually see how the ARM Cortex-M processor executes your code, how it manipulates registers, and how an embedded microcontroller can "do" things in the real world, such as turn on and off an LED.
This deeper understanding will allow you to use the C language more efficiently and with greater confidence. You will gain understanding not just what your program does, but also how the C statements translate to machine instructions and get a sense for how fast the processor can execute them. Also, you will get some familiarity with the ARM Cortex-M core, which will look really good on your resume.
The course has been going from January 2013, but it is never too late to join. Stay tuned...