Real-Time Embedded Systems,
Edition 1 Design Principles and Engineering Practices
By Xiaocong Fan

Publication Date: 28 Jan 2015
This book integrates new ideas and topics from real time systems, embedded systems, and software engineering to give a complete picture of the whole process of developing software for real-time embedded applications. You will not only gain a thorough understanding of concepts related to microprocessors, interrupts, and system boot process, appreciating the importance of real-time modeling and scheduling, but you will also learn software engineering practices such as model documentation, model analysis, design patterns, and standard conformance.This book is split into four parts to help you learn the key concept of embedded systems; Part one introduces the development process, and includes two chapters on microprocessors and interrupts---fundamental topics for software engineers; Part two is dedicated to modeling techniques for real-time systems; Part three looks at the design of software architectures and Part four covers software implementations, with a focus on POSIX-compliant operating systems.With this book you will learn:The pros and cons of different architectures for embedded systems POSIX real-time extensions, and how to develop POSIX-compliant real time applications How to use real-time UML to document system designs with timing constraintsThe challenges and concepts related to cross-development Multitasking design and inter-task communication techniques (shared memory objects, message queues, pipes, signals)How to use kernel objects (e.g. Semaphores, Mutex, Condition variables) to address resource sharing issues in RTOS applications The philosophy underpinning the notion of "resource manager" and how to implement a virtual file system using a resource manager The key principles of real-time scheduling and several key algorithms

Key Features

  • Coverage of the latest UML standard (UML 2.4)
  • Over 20 design patterns which represent the best practices for reuse in a wide range of real-time embedded systems
  • Example codes which have been tested in QNX---a real-time operating system widely adopted in industry
About the author
By Xiaocong Fan, Associate Professor of Computer Science and Software Engineering, Behrend College, Penn State University, Erie, PA, USA.
Table of Contents
Part I: Introduction1: Introduction to Embedded and Real-Time SystemsAbstract1.1 Embedded Systems1.2 Real-Time Systems1.3 Case Study: Radar SystemProblems2: Cross-Platform DevelopmentAbstract2.1 Cross-Platform Development Process2.2 Hardware Architecture2.3 Software Development2.4 Build Target Images2.5 Transfer Executable File Object to Target2.6 Integrated Testing on Target2.7 System ProductionProblems3: Microprocessor PrimerAbstract3.1 Introduction to Microprocessors3.2 Microchip PIC18F87203.3 Intel 80863.4 Intel Pentium3.5 ARM926EJ-SProblems4: InterruptsAbstract4.1 Introduction to Interrupts4.2 External Interrupts4.3 Software Interrupts4.4 Internal Interrupts4.5 Design Patterns for ISRs4.6 Interrupt Response Time4.7 Case Study: x864.8 Case Study: ARM ProcessorProblems5: Embedded System Boot ProcessAbstract5.1 System Bootloader5.2 System Boot Process5.3 Case Study: AT91SAM9G45 Boot Process5.4 Load ELF Objects Embedded Within an OS Image5.5 Case Study: Boot Process of QNX-based Embedded SystemsProblemsPart II: Real-Time System Modeling6: Fundamental UML Structural ModelingAbstract6.1 Unified Modeling Language6.2 Class Diagram and Class Modeling6.3 Class Modeling Principles6.4 Object Diagram6.5 Package DiagramProblems7: Architecture Modeling in UMLAbstract7.1 Levels of Architectural Abstraction7.2 UML Structure Diagram7.3 Modeling Components7.4 Modeling Subsystems7.5 Modeling a Complete System7.6 Deployment DiagramProblems8: Fundamental UML Behavioral ModelingAbstract8.1 Use Case Diagram and Use Case Modeling8.2 Sequence Diagram8.3 Activity DiagramProblems9: Modeling Stateful Behaviors in UMLAbstract9.1 Basics of a State Machine Diagram9.2 Composite States9.3 Inheritance of State Behavior9.4 Stateful Object Timing Diagrams9.5 Example: Modeling Stateful Behavior of a Radar SystemProblems10: Real-Time UML: General Resource ModelingAbstract10.1 Real-Time UML Profile10.2 Resource Modeling10.3 Time Modeling10.4 Concurrency ModelingProblems11: Real-Time UML: Model AnalysisAbstract11.1 Elicitation of Timing Constraints11.2 RT-UML Profile Schedulability Modeling Subprofile11.3 RT-UML Profile Performance Modeling SubprofileProblemsPart III: Real-Time System Design12: Software Architectures for Real-Time Embedded SystemsAbstract12.1 Real-Time Tasks12.2 Round-Robin Architecture12.3 Round Robin with Interrupts12.4 Queue-Based ArchitectureProblems13: POSIX and RTOSAbstract13.1 Introduction to POSIX13.2 Task Statics and Dynamics13.3 Real-Time OSs13.4 POSIX Real-Time Scheduling Policies13.5 Other Real-Time Scheduling PoliciesProblems14: MultitaskingAbstract14.1 Introduction to Multitasking14.2 Multitask Design14.3 Multitask Resource Sharing14.4 Addressing Resource Deadlocks14.5 Addressing Priority InversionProblems15: Real-Time Scheduling: Clock-Driven ApproachAbstract15.1 Introduction to Cyclic Scheduling15.2 Ad-hoc Clock-Driven Scheduling15.3 Frame-Based Scheduling15.4 Scheduling Aperiodic Jobs15.5 Task SplittingProblems16: Real-Time Scheduling: Rate-Monotonic ApproachAbstract16.1 Priority Assignment16.2 RMA Principle16.3 Rate-Monotonic Analysis16.4 Completion-Time Test16.5 Period Transformation16.6 Generalized Schedulability AnalysisProblems17: Real-Time Scheduling: Sporadic ServerAbstract17.1 Sporadic Tasks17.2 Sporadic Server17.3 A Naive Sporadic Server17.4 A Fixed-Priority Sporadic Server17.5 A Dynamic-Priority Sporadic ServerProblemsPart IV: Implementation Patterns18: Resource SharingAbstract18.1 Shared Variables18.2 Shared Memory18.3 Semaphore18.4 Mutex18.5 Condition VariableProblems19: Intertask Communication: Message QueueAbstract19.1 Introduction to Message Queues19.2 Message Queue Statics and Dynamics19.3 Message Queue Usage Patterns19.4 POSIX Functions for Message Queues19.5 An Example of Using Message QueuesProblems20: Intertask Communication: PipeAbstract20.1 Introduction to Pipes20.2 Pipe Statics and Dynamics20.3 Pipe Usage Patterns20.4 POSIX Functions for Pipes20.5 An Example of Using PipesProblems21: Intertask Communication: SignalingAbstract21.1 Introduction to POSIX Signals21.2 Signal Handling21.3 Signal Vector Table and Handlers21.4 POSIX Signal Functions21.5 QNX Implementation of POSIX Signals21.6 Spinlocks and Interrupt Events from ISRs21.7 QNX PulsesProblems22: Software Timer ManagementAbstract22.1 Hardware Timer and Software Timer22.2 Software Timer Manager22.3 Timing Wheels22.4 Hierarchical Timing WheelsProblems23: QNX Resource ManagementAbstract23.1 Introduction to QNX Resource Management23.2 Resource Manager Architecture23.3 Example 1: Calculator as a Resource Manager23.4 Example 2: Device DriversProblems
Book details
ISBN: 9780128015070
Page Count: 686
Retail Price : £66.99
9780124159174; 9781856177504; 9780080977683
Instructor Resources
Undergraduate and postgraduate students, Software engineers, Embedded systems engineers and hobbyists