Rating:

Author: Miro Samek
ISBN : B002ZJSVCS
New from $11.70
Format: PDF, EPUB
Download electronic versions of selected books Free Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems [Kindle Edition] from 4shared, mediafire, hotfile, and mirror link 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.Download latest books on mediafire and other links compilation Free Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems [Kindle Edition]
- File Size: 6356 KB
- Print Length: 728 pages
- Simultaneous Device Usage: Up to 4 simultaneous devices, per publisher limits
- Publisher: Newnes; 2 edition (October 3, 2008)
- Sold by: Amazon Digital Services, Inc.
- Language: English
- ASIN: B002ZJSVCS
- Text-to-Speech: Enabled
X-Ray:
- Lending: Not Enabled
- Amazon Best Sellers Rank: #481,119 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
- #83
in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > UML
- #83
in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > UML
Free Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems
If you are an accomplished or aspiring embedded systems programmer and resort to the "superloop" as your foremost implementation method, you absolutely MUST read this book.
While not new concepts to the industry, the concepts presented in Miro's book are certainly not commonplace in many of the embedded systems code I've seen over many years in the industry.
While UML makes for a clean, now defacto standard for presenting concepts, the real beauty in Miro's book is the use of a readily-available frameworks for immediately adopting the many lessons-learned and provided in the book. These complete, well written and excellently coded frameworks are available under the GPL and an alternate, low-cost license for those who wish to keep their code private.
For strong C programmers, the implementation of the frameworks is a delight as one reads through the code and is treated to an incredibly simple, lightweight and extremely powerful system that will forever put an end to your future plans to "superloop" again--albeit for any system where C (or C++) is adequately supported by the hardware. For anyone admitting that "we've always done superloop and it has always worked in the past," get ready for a real-time, highly responsive system that actually IS event driven and thrives in as little as a few bytes of RAM and perhaps a K of ROM.
For those who must hold on to the "superloop is king" mindset, consider the consequences of adding to your superloop an entirely new set of features and how that may affect the timing through your loop. I started with the "dining philosophers" example code discussed in the book and ported it to my own board (using a Renesas H8S-2166 microcontroller) and augmented the code to be responsive to external events (mechanical switches).
Many years ago Finite State Machine concept saved my life in an embedded software project. Thanks to this practical experience I realized how powerful the state machine concept used in software construction is. At that time the famous "C User Journal" was for me the only source of knowledge about state machines programming.
That is why I was excited when I spotted and read the first edition of the book a few years ago.
The current edition is much thicker - 700 pages in total.
State machines stuff occupy the first 250 pages and in my opinion, this is the mandatory reading for any embedded software engineer. The author starts from "A Crash Course in UML State Machines" which teaches a reader the skills needed to describe Finite State Machines and Hierarchical State Machines in UML.
The next chapter describes a few approaches to FSM implementation. Chapter 4 introduces Hierarchical State Machine implementation using QEP processor . Chapter 5 ends the "State Machine" part of the book with the detailed description of 5 state design patterns.
Going through these 5 chapters gives the reader the deep understanding of how to design state machines using UML and how they can be coded. This knowledge is universal and can be used with any CASE tool as well as for manual coding only.
The second part (nearly 450 pages) is devoted to the description of an inner construction and possible implementations of some kind of RTOS called QP. QP itself consists of Q Event Processor, Q event-driven Framework and Q preemptive Kernel. Part two is opened by the chapter called `Real-Time Framework Concepts'. It is especially useful for somebody who has so far used only home grown embedded systems with main loop and ISR.
Download Link 1 -
Download Link 2