Create timeless memories with the perfect camera
Buy new:
Ships from: Amazon.com
Sold by: Amazon.com
Ships from
Amazon.com
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Amazon.com
Sold by
Amazon.com
Returns
FREE refund/replacement until Jan 31, 2026
FREE refund/replacement until Jan 31, 2026
For the 2025 holiday season, eligible items purchased between November 1 and December 31, 2025 can be returned until January 31, 2026.
Read full return policy
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Access codes and supplements are not guaranteed with used items.
Ships from and sold by Books Today For You.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems 2nd Edition


Purchase options and add-ons

Practical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, active object (actor) framework, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++.

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 active object framework 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, ARM7/9, MSP430, AVR/AVR32, PIC24, RX, etc., as well as QP ports to operating systems, such as Linux, Windows, and Android.

Customers also bought or read

Loading...

Editorial Reviews

Review

"This book and the free QP download are your entry into the 21st century of embedded systems programming."
Rob Wehrli (Knoxville, TN), Amazon.com review

"It is rare to find an author who is so strong theoretically, while paying such close attention to implementation details like microcontroller resource conservation."-- Robert Jones (MI USA), Amazon.com review

"This book took me from being a C programming novice, to writing 1000s of lines of embedded control systems code, that has been running reliably for several years, with just one bug - my own!"Haitham Hindi "H.H." (Palo Alto, CA), Amazon.com review

From the Author

The embedded software industry is in the midst of a major revolution. Tremendous amount of new development lays ahead. This new software needs an actual architecture that is inherently safer, more extensible, and easier to understand than the usual shared-state concurrency and blocking based on a traditional Real-Time Operating System (RTOS).

This book provides and explains such a modern,
event-driven architecture based on active objects (actors), hierarchical state machines, software tracing, graphical modeling and automatic code generation. While others only talk about these modern techniques, this book actually comes with practical, efficient, working software that has been battle-tested and proven in real-life systems.

Welcome to the 21st century!

Product details

  • Publisher ‏ : ‎ CRC Press
  • Publication date ‏ : ‎ October 1, 2008
  • Edition ‏ : ‎ 2nd
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 752 pages
  • ISBN-10 ‏ : ‎ 0750687061
  • ISBN-13 ‏ : ‎ 978-0750687065
  • Item Weight ‏ : ‎ 2 pounds
  • Dimensions ‏ : ‎ 7.44 x 1.7 x 9.69 inches
  • Best Sellers Rank: #1,514,773 in Books (See Top 100 in Books)

About the author

Follow authors to get new release updates, plus improved recommendations.
Miro Samek
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Dr. Miro M. Samek is the creator of the open source QP real-time embedded frameworks and the freeware QM graphical model-based design tool. He is also the founder of Quantum Leaps (state-machine.com) -- the market leading provider of modern embedded software based on active objects and hierarchical state machines as well as tools for visual modeling, automatic code generation, unit testing and prototyping of deeply embedded software.

Miro teaches the popular "Modern Embedded Systems Programming" video course on YouTube (see https://www.youtube.com/c/StateMachineCOM )