Real-Time Embedded Systems

Real-Time Embedded Systems

Design Principles and Engineering Practices

1st Edition - January 28, 2015

Write a review

  • Author: Xiaocong Fan
  • Paperback ISBN: 9780128015070
  • eBook ISBN: 9780128017180

Purchase options

Purchase options
Available
DRM-free (PDF, EPub, Mobi)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order

Description

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 constraints The 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

Readership

Undergraduate and postgraduate students; Software engineers, Embedded systems engineers and hobbyists

Table of Contents

  • Part I: Introduction

    Chapter 1: Introduction to Embedded and Real-Time Systems

    • Abstract
    • 1.1 Embedded Systems
    • 1.2 Real-Time Systems
    • 1.3 Case Study: Radar System
    • Problems

    Chapter 2: Cross-Platform Development

    • Abstract
    • 2.1 Cross-Platform Development Process
    • 2.2 Hardware Architecture
    • 2.3 Software Development
    • 2.4 Build Target Images
    • 2.5 Transfer Executable File Object to Target
    • 2.6 Integrated Testing on Target
    • 2.7 System Production
    • Problems

    Chapter 3: Microprocessor Primer

    • Abstract
    • 3.1 Introduction to Microprocessors
    • 3.2 Microchip PIC18F8720
    • 3.3 Intel 8086
    • 3.4 Intel Pentium
    • 3.5 ARM926EJ-S
    • Problems

    Chapter 4: Interrupts

    • Abstract
    • 4.1 Introduction to Interrupts
    • 4.2 External Interrupts
    • 4.3 Software Interrupts
    • 4.4 Internal Interrupts
    • 4.5 Design Patterns for ISRs
    • 4.6 Interrupt Response Time
    • 4.7 Case Study: x86
    • 4.8 Case Study: ARM Processor
    • Problems

    Chapter 5: Embedded System Boot Process

    • Abstract
    • 5.1 System Bootloader
    • 5.2 System Boot Process
    • 5.3 Case Study: AT91SAM9G45 Boot Process
    • 5.4 Load ELF Objects Embedded Within an OS Image
    • 5.5 Case Study: Boot Process of QNX-based Embedded Systems
    • Problems

    Part II: Real-Time System Modeling

    Chapter 6: Fundamental UML Structural Modeling

    • Abstract
    • 6.1 Unified Modeling Language
    • 6.2 Class Diagram and Class Modeling
    • 6.3 Class Modeling Principles
    • 6.4 Object Diagram
    • 6.5 Package Diagram
    • Problems

    Chapter 7: Architecture Modeling in UML

    • Abstract
    • 7.1 Levels of Architectural Abstraction
    • 7.2 UML Structure Diagram
    • 7.3 Modeling Components
    • 7.4 Modeling Subsystems
    • 7.5 Modeling a Complete System
    • 7.6 Deployment Diagram
    • Problems

    Chapter 8: Fundamental UML Behavioral Modeling

    • Abstract
    • 8.1 Use Case Diagram and Use Case Modeling
    • 8.2 Sequence Diagram
    • 8.3 Activity Diagram
    • Problems

    Chapter 9: Modeling Stateful Behaviors in UML

    • Abstract
    • 9.1 Basics of a State Machine Diagram
    • 9.2 Composite States
    • 9.3 Inheritance of State Behavior
    • 9.4 Stateful Object Timing Diagrams
    • 9.5 Example: Modeling Stateful Behavior of a Radar System
    • Problems

    Chapter 10: Real-Time UML: General Resource Modeling

    • Abstract
    • 10.1 Real-Time UML Profile
    • 10.2 Resource Modeling
    • 10.3 Time Modeling
    • 10.4 Concurrency Modeling
    • Problems

    Chapter 11: Real-Time UML: Model Analysis

    • Abstract
    • 11.1 Elicitation of Timing Constraints
    • 11.2 RT-UML Profile Schedulability Modeling Subprofile
    • 11.3 RT-UML Profile Performance Modeling Subprofile
    • Problems

    Part III: Real-Time System Design

    Chapter 12: Software Architectures for Real-Time Embedded Systems

    • Abstract
    • 12.1 Real-Time Tasks
    • 12.2 Round-Robin Architecture
    • 12.3 Round Robin with Interrupts
    • 12.4 Queue-Based Architecture
    • Problems

    Chapter 13: POSIX and RTOS

    • Abstract
    • 13.1 Introduction to POSIX
    • 13.2 Task Statics and Dynamics
    • 13.3 Real-Time OSs
    • 13.4 POSIX Real-Time Scheduling Policies
    • 13.5 Other Real-Time Scheduling Policies
    • Problems

    Chapter 14: Multitasking

    • Abstract
    • 14.1 Introduction to Multitasking
    • 14.2 Multitask Design
    • 14.3 Multitask Resource Sharing
    • 14.4 Addressing Resource Deadlocks
    • 14.5 Addressing Priority Inversion
    • Problems

    Chapter 15: Real-Time Scheduling: Clock-Driven Approach

    • Abstract
    • 15.1 Introduction to Cyclic Scheduling
    • 15.2 Ad-hoc Clock-Driven Scheduling
    • 15.3 Frame-Based Scheduling
    • 15.4 Scheduling Aperiodic Jobs
    • 15.5 Task Splitting
    • Problems

    Chapter 16: Real-Time Scheduling: Rate-Monotonic Approach

    • Abstract
    • 16.1 Priority Assignment
    • 16.2 RMA Principle
    • 16.3 Rate-Monotonic Analysis
    • 16.4 Completion-Time Test
    • 16.5 Period Transformation
    • 16.6 Generalized Schedulability Analysis
    • Problems

    Chapter 17: Real-Time Scheduling: Sporadic Server

    • Abstract
    • 17.1 Sporadic Tasks
    • 17.2 Sporadic Server
    • 17.3 A Naive Sporadic Server
    • 17.4 A Fixed-Priority Sporadic Server
    • 17.5 A Dynamic-Priority Sporadic Server
    • Problems

    Part IV: Implementation Patterns

    Chapter 18: Resource Sharing

    • Abstract
    • 18.1 Shared Variables
    • 18.2 Shared Memory
    • 18.3 Semaphore
    • 18.4 Mutex
    • 18.5 Condition Variable
    • Problems

    Chapter 19: Intertask Communication: Message Queue

    • Abstract
    • 19.1 Introduction to Message Queues
    • 19.2 Message Queue Statics and Dynamics
    • 19.3 Message Queue Usage Patterns
    • 19.4 POSIX Functions for Message Queues
    • 19.5 An Example of Using Message Queues
    • Problems

    Chapter 20: Intertask Communication: Pipe

    • Abstract
    • 20.1 Introduction to Pipes
    • 20.2 Pipe Statics and Dynamics
    • 20.3 Pipe Usage Patterns
    • 20.4 POSIX Functions for Pipes
    • 20.5 An Example of Using Pipes
    • Problems

    Chapter 21: Intertask Communication: Signaling

    • Abstract
    • 21.1 Introduction to POSIX Signals
    • 21.2 Signal Handling
    • 21.3 Signal Vector Table and Handlers
    • 21.4 POSIX Signal Functions
    • 21.5 QNX Implementation of POSIX Signals
    • 21.6 Spinlocks and Interrupt Events from ISRs
    • 21.7 QNX Pulses
    • Problems

    Chapter 22: Software Timer Management

    • Abstract
    • 22.1 Hardware Timer and Software Timer
    • 22.2 Software Timer Manager
    • 22.3 Timing Wheels
    • 22.4 Hierarchical Timing Wheels
    • Problems

    Chapter 23: QNX Resource Management

    • Abstract
    • 23.1 Introduction to QNX Resource Management
    • 23.2 Resource Manager Architecture
    • 23.3 Example 1: Calculator as a Resource Manager
    • 23.4 Example 2: Device Drivers
    • Problems

Product details

  • No. of pages: 686
  • Language: English
  • Copyright: © Newnes 2015
  • Published: January 28, 2015
  • Imprint: Newnes
  • Paperback ISBN: 9780128015070
  • eBook ISBN: 9780128017180

About the Author

Xiaocong Fan

Dr. Xiaocong (Simon) Fan is an Associate Professor of Computer Science and Software Engineering at Pennsylvania State University. He received his Ph.D. in Software Engineering from Nanjing University, China. He has been an active researcher in the fields of Multi-Agent Systems, Formal Methods in Software Engineering, and Advanced Decision-Support Systems. He is a key architect of several intelligent agent systems, including RCAST and SMMall. Dr. Fan is a Senior Member of IEEE.

Affiliations and Expertise

Associate Professor of Computer Science and Software Engineering, Behrend College, Penn State University, Erie, PA, USA.

Ratings and Reviews

Write a review

There are currently no reviews for "Real-Time Embedded Systems"