Samek | Practical UML Statecharts in C/C++ | E-Book | sack.de
E-Book

E-Book, Englisch, 728 Seiten

Samek Practical UML Statecharts in C/C++

Event-Driven Programming for Embedded Systems
2. Auflage 2008
ISBN: 978-1-4822-4926-2
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)

Event-Driven Programming for Embedded Systems

E-Book, Englisch, 728 Seiten

ISBN: 978-1-4822-4926-2
Verlag: Taylor & Francis
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)



Samek Practical UML Statecharts in C/C++ jetzt bestellen!

Zielgruppe


Embedded programmers; real-time system architects; code developers using C or C++


Autoren/Hrsg.


Weitere Infos & Material


Preface PART I STATECHARTS Chapter 1 Whirlwind Tour of Programming with Statecharts1.1 Why Bother?1.2 The Traditional Event-Action Paradigm1.3 State Machines ? A Better Way of Programming1.3.1 The Time Bomb Example1.3.2 The Calculator Example1.5 Object-Oriented Analogy1.6 The Event-driven Framework1.6 SummaryChapter 2 A Crash Course in Statecharts 2.1 The Essence of Finite State Machines2.2 The Essence of UML Statecharts2.3 Examples of State Models2.4 SummaryChapter 3 Standard State Machine Implementations3.1 State Machine Interface3.2 Nested switch Statement3.3 State Table3.4 State Design Pattern3.5 Optimal FSM Implementation3.6 State Machines and C++ Exception Handling 3.7 Role of Pointer-to-Member Functions3.8 Implementing Guards, Junctions, and Choice Points3.9 Implementing Entry and Exit Actions3.10 Dealing with State Hierarchy3.11 SummaryChapter 4 QEP: A Minimal Hierarchical Event Processor4.1 General Structure of the QEP Event Processor4.2 An Annotated Example (QHsm)4.3 QEP Structure4.3.1 QEP Source Code Structure4.3.2 Internal Representation of a State Machine4.3.3 Initialization of a State Machine4.3.4 Dispatching Events to a FSM4.3.5 Executing a Transition in a FSM4.3.6 Dispatching Events to a HSM4.3.7 Executing a Transition in a HSM4.3.8 Static Transition Optimization in a HSM4.4 Porting and Configuring QEP4.5 Caveats4.6 SummaryChapter 5 Implementing State Machines with QEP5.1 Implementing a HSM with QEP5.1.1 Step 1: Enumerating Signals5.1.2 Step 2: Defining Events5.1.3 Step 3: Defining the QCalc State Machine5.1.4 Step 4: Declaring the QCalc States5.1.5 Step 5: Initializing the HSM5.1.6 Step 6: Implementing the State Handler Functions5.2 Implementing a FSM with QEP2.5 Pitfalls to Avoid While Coding State Machines with QEP2.5.1 Incomplete State Handlers 2-372.5.2 Confusing Statecharts with Flowcharts 2-382.5.3 Ill-Formed State Handlers 2-392.5.4 Suboptimal Signal Granularity 2-422.5.5 Violating the Run To Completion Semantics 2-424.6 SummaryChapter 6 State Patterns6.1 Ultimate Hook6.2 Reminder6.3 Deferred Event6.4 Orthogonal Component6.5 Transition to History6.6 SummaryPART II EVENT-DRIVEN FRAMEWORKChapter 7 QF: A Minimal Event-Driven Embedded Framework7.1 Conventional Approach to Multithreading7.2 Computing Model of QF7.3 Annotated Example7.3.1 The ?Airplane in the Tunnel? Game7.3.2 The Active Object Design7.3.3 The Implementation7.3.4 The Port for ARM Cortex-M37.3.5 Testing7.4 SummaryChapter 8 Design of QF8.1 Handling Errors and Exceptional Conditions8.2 Memory Management8.3 Mutual Exclusion and Blocking8.4 Active Objects8.5 Event Management in QF8.6 Event Delivery Mechanisms in QF8.9 Deferring and Recalling Events in QF8.7 Time Events8.8 SummaryChapter 9 Implementation of QF9.1 Code Organization9.2 Critical Section in QF9.3 General QF Policies Enforced by Assertions9.4 Active Object class9.5 Native QF Event Queue9.6 Native QF Memory Pool9.7 Native QF Priority Set9.8 Native QF SchedulerChapter 10 Porting QF10.1 QF Porting Guide10.2 QF on Bare-Metal Targets (the Vanilla Port)10.3 Using QF with a preemptive Real-Time Kernel (µC/OS-II)10.4 QF port to a POSIX-Compliant OS (Linux)10.5 SummaryChapter 11 Conclusion11.2 Rules for Developing Event-Driven Embedded Applications11.3 Heuristics11.4 Sizing Event Queues and Event Pools11.5 System Integration11.6 Summary of Key Elements11.7 An InvitationAppendix A QK: A Single-Stack Preemptive KernelA.2 Run-to-Completion ProcessingA.3 Synchronous and Asynchronous PreemptionsA.4 Stack UtilizationA.4 Comparison with a Traditional RTOSA.5 SummaryAppendix B QS: Software Tracing for Event Driven SystemsB.1 Software Tracing ConceptsB.2 Structure of QS Trace RecordsB.3 QS FiltersB.4 QS Data ProtocolB.5 QS Trace BufferB.6 Configuring and Porting QSB.7 SummaryAppendix C Inheriting Entire State Models in C++C.1 Statechart Refinement Example in C++C.3 CaveatsC.4 SummaryAppendix D Guide to Notation D.1 Class DiagramsD.2 Statechart DiagramsD.3 Sequence DiagramsD.4 Timing DiagramsAppendix E CD-ROME.1 Source Code StructureE.2 InstallationE.3 LicensingE.4 Answers to the ExercisesE.5 QP Reference Guide (Doxygen)E.6 Resources BibliographyIndex


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).



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.