- Paperback: 728 pages
- Publisher: CRC Press; 2 edition (October 1, 2008)
- Language: English
- ISBN-10: 0750687061
- ISBN-13: 978-0750687065
- Product Dimensions: 7.5 x 1.5 x 9.2 inches
- Shipping Weight: 2.8 pounds (View shipping rates and policies)
- Average Customer Review: 27 customer reviews
Amazon Best Sellers Rank:
#914,047 in Books (See Top 100 in Books)
- #56 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > UML
- #106 in Books > Computers & Technology > Hardware & DIY > Microprocessors & System Design > Embedded Systems
- #274 in Books > Engineering & Transportation > Engineering > Electrical & Electronics > Digital Design
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
"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
From the Author
You can't just look at state machines and the event-driven active object framework as a collection of features, because some of the features will make no sense in isolation. You can only use these powerful concepts effectively if you are thinking about incremental, iterative design, not simply coding. And to understand state machines that way, you must understand the problems with programming event-driven systems in general.
This book discusses problems inherent in reactive systems, why they are problems, and how state machines and active object computing model can help. Thus, I begin most chapters with the programming problems the chapter will address. In this way, I hope to move you, a little at a time, to the point where active objects and hierarchical state machines become a much more natural way of solving the problems than the traditional approaches such as deeply nested IFs and ELSEs for coding stateful behavior or using blocking calls, such as semaphores or time delays to signal events in a traditional RTOS.
When you start using the techniques described in this book, your problems will change. You will no longer struggle with 15 levels of convoluted IF-ELSE statements, and you will stop worrying about semaphores or other such low-level RTOS mechanisms. Instead, you'll start thinking at a higher level of abstraction about state machines, events, and active objects. After you experience this quantum leap you will find, as I did, that programming can be much more fun.
Discover books for all types of engineers, auto enthusiasts, and much more. Learn more
Top customer reviews
The book describes how to use QM, a graphical tool for designing firmware, by creating UML state charts. It also describes how to use QP, a framework for managing concurrent, hierarchical state machines, (Active Objects) that can run under Linux, Windows and a multitude of different micro-controllers.
The book explains what hierarchical state machines and Active Objects are. It describes how and why they would be used. It also describes QK, which is a preemptive real time executive that is very fast and has an extremely tiny foot print.
Another topic discussed in the book is QSpy, a powerful tool for logging software trace information, used for debugging the firmware running on the target, in real time.
There are detailed examples in the book that explain how to use events, through the use of a messaging system.
Later in the book porting of QP or QK to other embedded platform, is explained in detail.
One of the best features of QP and QM, is that they can be downloaded for free, from SourceForge.net for non-commercial purposes. Very cool!!!
If it sounds like I am very impressed with the book, I am. I used the book to learn how to use QM and QP for the verification and validation testing of the firmware, of a medical device used to help people, suffering from epilepsy. The testing was necessary for FDA cerification,
QM was used to design a test harness, which ran on a PC. The test harness was used to test QP state transitions, running on an embedded target. So in effect, QP running on a PC, was used to test firmware running QP, on the target.
I learned everything that was needed to create and run the test harness using QM and QP, from the book. For me it was like a graduate course in computer engineering as well as being fun.
My hobby is building robots and I intend to use QM and QP to design the controller for my next robot. I still refer to the book from time to time, because it is so full of very useful information about embedded programming.
This book is best suited to people that have had some embedded programming experience.
This book shows you the power of state machines.
He takes the reader way beyond if/else and switch statements.
This book clearly shows how to map the problem space onto the solution space using statemachines
It also promotes reuse instead of ahoc statemachine design.
My one reservation is usage of C++ macros may be a bit much cumbersome
I whole heartedly recommend this book.
In fact, you can collect many of Samek approachings over the net, but,have it all inside a book is simply perfect.
It seems you have a big buffet, ranging from hotdogs to salmon speciallities dishes under the same table :)
State machines is a very powerfull approach wich any designer should use extensively, since the begining, for almost everything.
After many years (unfurtenely) I got it ...
Samek put it to work in the middle of a "complete EMBEDDED" system context, I mean, events handling, objects / tasks switching, system exchanging messages etc etc.
He also shows the "prices" to pay for simple vesrsus more sophisticated issues, like cooperative x preemptive OS , simple versus hierarchical state machines.It is a very important point if you don't have endless memory devices.
Well, sometimes to make the thing work is easier then to explain anothers to how and why it is working...Samek made it clearly.
I really appreciated this book and strongly recommend it.