Practical UML Statecharts in C/C++ - Samek, Miro

Miro Samek 

Practical UML Statecharts in C/C++

Event-Driven Programming for Embedded Systems

Broschiertes Buch
 
Sprache: Englisch
versandkostenfrei
innerhalb Deutschlands
37 ebmiles sammeln
EUR 36,95
Sofort lieferbar
Alle Preise inkl. MwSt.
Bewerten Empfehlen Merken Auf Lieblingsliste


Andere Kunden interessierten sich auch für

Practical UML Statecharts in C/C++

The shear volume of embedded code produced by programmers demands a unified language and framework to create efficient and maintainable systems. UML(unified modeling language) statecharts are a practical way in which to create this framework. The software framework of from the first edition is now open source and has been significantly improved and expanded. It is now compatible with the very popular ARM7 architecture and Cortex-M3. This book is presented in two parts, the first introduces statecharts, how to design with them and how to code them directly into C/C++ without the use of expensive tools. Part two introduces the author's event-driven framework for executing the material presented in part one.


Produktinformation

  • Abmessung: 232mm x 189mm x 40mm
  • Gewicht: 1250g
  • ISBN-13: 9780750687065
  • ISBN-10: 0750687061
  • Best.Nr.: 23402532
Dr. Miro Samek is the founder and president of Quantum Leaps, an open source company providing lightweight, state machine-based, event-driven application frameworks for embedded systems. He is the author of Practical Statecharts in C/C++ (CMP Books, 2002), has written numerous articles for magazines, including a column for C/C++ Users Journal, is a regular speaker at the Embedded Systems Conferences, and serves on the editorial review board of the Embedded Systems Design magazine. For a number of years, he worked in various Silicon Valley companies as an embedded software architect and before that he worked as an embedded software engineer at GE Medical Systems (now GE Healthcare). Dr. Samek earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany).

Inhaltsangabe

Preface PART I STATECHARTS Chapter 1 Whirlwind Tour of Programming with Statecharts 1.1 Why Bother? 1.2 The Traditional Event
Action Paradigm 1.3 State Machines ? A Better Way of Programming 1.3.1 The Time Bomb Example 1.3.2 The Calculator Example 1.5 Object
Oriented Analogy 1.6 The Event
driven Framework 1.6 Summary Chapter 2 A Crash Course in Statecharts 2.1 The Essence of Finite State Machines 2.2 The Essence of UML Statecharts 2.3 Examples of State Models 2.4 Summary Chapter 3 Standard State Machine Implementations 3.1 State Machine Interface 3.2 Nested switch Statement 3.3 State Table 3.4 State Design Pattern 3.5 Optimal FSM Implementation 3.6 State Machines and C++ Exception Handling 3.7 Role of Pointer
to
Member Functions 3.8 Implementing Guards, Junctions, and Choice Points 3.9 Implementing Entry and Exit Actions 3.10 Dealing with State Hierarchy 3.11 Summary Chapter 4 QEP: A Minimal Hierarchical Event Processor 4.1 General Structure of the QEP Event Processor 4.2 An Annotated Example (QHsm) 4.3 QEP Structure 4.3.1 QEP Source Code Structure 4.3.2 Internal Representation of a State Machine 4.3.3 Initialization of a State Machine 4.3.4 Dispatching Events to a FSM 4.3.5 Executing a Transition in a FSM 4.3.6 Dispatching Events to a HSM 4.3.7 Executing a Transition in a HSM 4.3.8 Static Transition Optimization in a HSM 4.4 Porting and Configuring QEP 4.5 Caveats 4.6 Summary Chapter 5 Implementing State Machines with QEP 5.1 Implementing a HSM with QEP 5.1.1 Step 1: Enumerating Signals 5.1.2 Step 2: Defining Events 5.1.3 Step 3: Defining the QCalc State Machine 5.1.4 Step 4: Declaring the QCalc States 5.1.5 Step 5: Initializing the HSM 5.1.6 Step 6: Implementing the State Handler Functions 5.2 Implementing a FSM with QEP 2.5 Pitfalls to Avoid While Coding State Machines with QEP 2.5.1 Incomplete State Handlers 2
37 2.5.2 Confusing Statecharts with Flowcharts 2
38 2.5.3 Ill
Formed State Handlers 2
39 2.5.4 Suboptimal Signal Granularity 2
42 2.5.5 Violating the Run To Completion Semantics 2
42 4.6 Summary Chapter 6 State Patterns 6.1 Ultimate Hook 6.2 Reminder 6.3 Deferred Event 6.4 Orthogonal Component 6.5 Transition to History 6.6 Summary PART II EVENT
DRIVEN FRAMEWORK Chapter 7 QF: A Minimal Event
Driven Embedded Framework 7.1 Conventional Approach to Multithreading 7.2 Computing Model of QF 7.3 Annotated Example 7.3.1 The ?Airplane in the Tunnel? Game 7.3.2 The Active Object Design 7.3.3 The Implementation 7.3.4 The Port for ARM Cortex
M3 7.3.5 Testing 7.4 Summary Chapter 8 Design of QF 8.1 Handling Errors and Exceptional Conditions 8.2 Memory Management 8.3 Mutual Exclusion and Blocking 8.4 Active Objects 8.5 Event Management in QF 8.6 Event Delivery Mechanisms in QF 8.9 Deferring and Recalling Events in QF 8.7 Time Events 8.8 Summary Chapter 9 Implementation of QF 9.1 Code Organization 9.2 Critical Section in QF 9.3 General QF Policies Enforced by Assertions 9.4 Active Object class 9.5 Native QF Event Queue 9.6 Native QF Memory Pool 9.7 Native QF Priority Set 9.8 Native QF Scheduler Chapter 10 Porting QF 10.1 QF Porting Guide 10.2 QF on Bare
Metal Targets (the Vanilla Port) 10.3 Using QF with a preemptive Real
Time Kernel (uC/OS
II) 10.4 QF port to a POSIX
Compliant OS (Linux) 10.5 Summary Chapter 11 Conclusion 11.2 Rules for Developing Event
Driven Embedded Applications 11.3 Heuristics 11.4 Sizing Event Queues and Event Pools 11.5 System Integration 11.6 Summary of Key Elements 11.7 An Invitation Appendix A QK: A Single
Stack Preemptive Kernel A.2 Run
to
Completion Processing A.3 Synchronous and Asynchronous Preemptions A.4 Stack Utilization A.4 Comparison with a Traditional RTOS A.5 Summary Appendix B QS: Software Tracing for Event Driven Systems B.1 Software Tracing Concepts B.2 Structure of QS Trace Records B.3 QS Filters B.4 QS Data Protocol B.5 QS Trace Buffer B.6 Configuring and Porting QS B.7 Summary Appendix C Inheriting Entire State Models in C++ C.1 Statechart Refinement Example in C++ C.3 Caveats C.4 Summary Appendix D Guide to Notation D.1 Class Diagrams D.2 Statechart Diagrams D.3 Sequence Diagrams D.4 Timing Diagrams Appendix E CD
ROM E.1 Source Code Structure E.2 Installation E.3 Licensing E.4 Answers to the Exercises E.5 QP Reference Guide (Doxygen) E.6 Resources Bibliography Index
Mehr von