Embedded Systems Architecture

Similar documents
Computers as Components Principles of Embedded Computing System Design

Programming 8-bit PIC Microcontrollers in С

MSP430 Microcontroller Basics

Coding for Penetration

The Definitive Guide to the ARM Cortex-M3

An Introduction to Parallel Programming

Android Forensics. Investigation, Analysis, Google Android. and Mobile Security for. Andrew Hoog. John McCash, Technical Editor SYNGRESS

Open-Source Robotics and Process Control Cookbook

FISMAand the Risk Management Framework

FPGAs: Instant Access

Coding for Penetration Testers Building Better Tools

Algorithmic Graph Theory and Perfect Graphs

An Introduction to Programming with IDL

Information Modeling and Relational Databases

M (~ Computer Organization and Design ELSEVIER. David A. Patterson. John L. Hennessy. University of California, Berkeley. Stanford University

Computer Architecture A Quantitative Approach

Complete PCB Design Using OrCad Capture and Layout

Maya Python. for Games and Film. and the Maya Python API. A Complete Reference for Maya Python. Ryan Trowbridge. Adam Mechtley ELSEVIER

Understand and Implement Effective PCI Data Security Standard Compliance

ARCHITECTURE DESIGN FOR SOFT ERRORS

Managed. Code Rootkits. Hooking. into Runtime. Environments. Erez Metula ELSEVIER. Syngress is an imprint of Elsevier SYNGRESS

Engineering Real- Time Applications with Wild Magic

Real World Multicore Embedded Systems

MPEG-l.MPEG-2, MPEG-4

PTC Mathcad Prime 3.0

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming Nasser Kehtarnavaz

System Assurance. Beyond Detecting. Vulnerabilities. Djenana Campara. Nikolai Mansourov

Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems

Security for Microsoft Windows System Administrators

The Unified Modeling Language User Guide

Moving to the Cloud. Developing Apps in. the New World of Cloud Computing. Dinkar Sitaram. Geetha Manjunath. David R. Deily ELSEVIER.

Practical UML Statecharts in C/C++

Structured Parallel Programming

Chapter 08: The Memory System. Lesson 01: Basic Concepts

The Designer's Guide to VHDL Second Edition

Database Modeling And Design The Fundamental Principles The Morgan Kaufmann Series In Data Management Systems

Structured Parallel Programming Patterns for Efficient Computation

Traveling Wave Analysis of Partial Differential Equations

Database Concepts. David M. Kroenke UNIVERSITATSBIBLIOTHEK HANNOVER

Objects First with Java

Essential MATLAB for Engineers and Scientists

Programming in Python 3

MAKING PIC MICROCONTROLLER INSTRUMENTS AND CONTROLLERS

Relational Database Design Clearly Explained Second Edition The Morgan Kaufmann Series In Data Management Systems By Harrington Jan L 2002 Paperback

Foundations of Multidimensional and Metric Data Structures

THE AVR MICROCONTROLLER AND EMBEDDED SYSTEMS. Using Assembly and С

PYTHON. p ykos vtawynivis. Second eciitiovl. CO Ve, WESLEY J. CHUN

Real-Time Systems and Programming Languages

Integrated Approach. Operating Systems COMPUTER SYSTEMS. LEAHY, Jr. Georgia Institute of Technology. Umakishore RAMACHANDRAN. William D.

Computer Organization and Microprocessors SYLLABUS CHAPTER - 1 : BASIC STRUCTURE OF COMPUTERS CHAPTER - 3 : THE MEMORY SYSTEM

Networked Graphics 01_P374423_PRELIMS.indd i 10/27/2009 6:57:42 AM

Integrated Circuit Design Using. Open Cores and Design Tools. Martha SaloméLópez de la Fuente

HTML5 MOBILE WEBSITES

Oracle 10g Developing Media Rich Applications

Windows Forensic Analysis Toolkit Third Edition Advanced Analysis Techniques For Windows 7

Windows Forensic Analysis Toolkit Third Edition Advanced Analysis Techniques For Windows 7

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Refactoring HTML. Improving the Design of Existing Web Applications. Elliotte Rusty Harold. TT rvaddison-wesley

Table of Contents. 1 Introduction. 2 Reliability Predictions for Electronic Equipment. 3 Steady State Failure Rate Prediction for Devices

The Essential Guide to Video Processing

MULTIDIMENSIONAL SIGNAL, IMAGE, AND VIDEO PROCESSING AND CODING

Architecture of Embedded Systems

Another fundamental component of the computer is the main memory.

The Power of Events. An Introduction to Complex Event Processing in Distributed Enterprise Systems. David Luckham

MariaDB Crash Course. A Addison-Wesley. Ben Forta. Upper Saddle River, NJ Boston. Indianapolis. Singapore Mexico City. Cape Town Sydney.

System BIOS for IBM PCs, Compatibles, and EISA Computers, Second Edition

MICROCONTROLLER BASED SMART FAN SYSTEM

PROGRAMMING AND CUSTOMIZING

Broadband Wireless Mobile 3g And Beyond

Virtualization from the Trenches

Computer Animation. Algorithms and Techniques. z< MORGAN KAUFMANN PUBLISHERS. Rick Parent Ohio State University AN IMPRINT OF ELSEVIER SCIENCE

CCNA Cisco Certified Network Associate Study Guide

target, perl recommened >no dsdp

Editing: A Guide for Beginning and Intermediate Users

Business Driven Data Communications

Designing Embedded Systems with PIC Microcontrollers

Usability Testing Essentials

Digital System Design with SystemVerilog

Authoring Interactive Multimedia

Fit for Developing Software

Eleventh Hour Network+ Exam N Study Guide

Year 12 Computer Science Learning Cycle 2 Overview

esign an ser mterrace Evaluation TheOpen University DEBBIE STONE The Open University, UK CAROLINE JARRETT Effortmark Limited

1 Digital tools. 1.1 Introduction

Rendering with mental ray and 3ds Max

Framework Design Guidelines

LATEX. Leslie Lamport. Digital Equipment Corporation. Illustrations by Duane Bibby. v ADDISON-WESLEY

Modeling & Simulation-Based Data Engineering

CLASSIC DATA STRUCTURES IN JAVA

THE DESIGNER S GUIDE TO VERILOG-AMS

SQL Queries. for. Mere Mortals. Third Edition. A Hands-On Guide to Data Manipulation in SQL. John L. Viescas Michael J. Hernandez

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

DATABASE SYSTEM CONCEPTS

Xcode 6 Start to Finish

Programming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley

Programming with the Java Media Framework

Computer Organization

Lecture 1. Course Overview and The 8051 Architecture

\ Smart Client 0" Deploymentwith v^ ClickOnce

Heuristic Search. Theory and Applications. Stefan Edelkamp. Stefan Schrodl ELSEVIER. Morgan Kaufmann is an imprint of Elsevier HEIDELBERG LONDON

Transcription:

Embedded Systems Architecture A Comprehensive Guide for Engineers and Programmers By Tammy Noergaard ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO Newnes is an imprint of Elsevier N@WneS

Foreword Acknowledgments About the Author Section I: Introduction to Embedded Systems 1 Chapter 1: A Systems Engineering Approach to Embedded Systems Design 5 1.1 What Is an Embedded System? 5 1.2 Embedded Systems Design 7 1.3 An Introduction to Embedded Systems Architecture 9 1.4 Why Is the Architecture of an Embedded System Important? 11 1.5 The Embedded Systems Model 12 1.6 Summary 13 Chapter 1 Problems 15 Chapter 2: Know Your Standards 17 2.1 An Overview of Programming Languages and Examples of Their Standards 30 2.2 Standards and Networking 46 2.3 Multiple Standards-Based Device Example: Digital Television (DTV) 65 2.4 Summary 67 Chapter 2 Problems 69 Section II: Embedded Hardware 73 Chapter 3: Embedded Hardware Building Blocks and the Embedded Board 77 3.1 Lesson One on Hardware: Learn to Read a Schematic! 77 3.2 The Embedded Board and the von Neumann Model 82 3.3 Powering the Hardware 87 3.4 Basic Hardware Materials: Conductors, Insulators, and Semiconductors 89 3.5 Common Passive Components on Boards and in Chips: Resistors, Capacitors, and Inductors 93 3.6 Semiconductors and the Active Building Blocks of Processors and Memory 101 3.7 Putting It All Together: The Integrated Circuit (IC) 117 3.8 Summary 121 Chapter 3 Problems 122 vii xi xiii xiv

Chapter 4: Embedded Processors 129 4.1 ISA Architecture Models 131 4.2 Internal Processor Design 145 4.3 Processor Performance 203 4.4 Reading a Processor's Datasheet 206 4.5 Summary 218 Chapter 4 Problems 219 Chapter 5: Board Memory 223 5.1 Read-Only Memory (ROM) 227 5.2 Random-Access Memory (RAM) 232 5.3 Auxiliary Memory 242 5.4 Memory Management of External Memory 247 5.5 Board Memory and Performance 249 5.6 Summary 250 Chapter 5 Problems 251 Chapter 6: Board I/O (Input/Output) 253 6.1 Managing Data: Serial vs. Parallel I/O 257 6.2 Interfacing the I/O Components 277 6.3 I/O and Performance 280 6.4 Summary 282 Chapter 6 Problems 283 Chapter 7: Board Buses 287 7.1 Bus Arbitration and Timing 289 7.2 Integrating the Bus with Other Board Components 299 7.3 Bus Performance 300 7.4 Summary 301 Chapter 7 Problems 302 Section III: Embedded Software Introduction 307 Chapter 8: Device Drivers 311 8.1 Example 1: Device Drivers for Interrupt-Handling 315 8.2 Example 2: Memory Device Drivers 332 8.3 Example 3: On-board Bus Device Drivers 351 8.4 Board I/O Driver Examples 358 8.5 Summary 379 Chapter 8 Problems 380 Chapter 9: Embedded Operating Systems 383 9.1 What Is a Process? 388 9.2 Multitasking and Process Management 390 9.3 Memory Management 421 VIII

9.4 I/O and File System Management 435 9.5 OS Standards Example: POSIX (Portable Operating System Interface) 437 9.6 OS Performance Guidelines 439 9.7 OSes and Board Support Packages (BSPs) 440 9.8 Summary 441 Chapter 9 Problems 442 Chapter 10: Middleware and Application Software 445 10.1 What Is Middleware? 445 10.2 What Is an Application? 447 10.3 Middleware Examples 447 10.4 Application Layer Software Examples 484 10.5 Summary 498 Chapter 10 Problems 499 Section IV: Putting It All Together: Design and Development. 505 Chapter 11: Defining the System Creating the Architecture and Documenting the Design 509 11.1 Creating an Embedded System Architecture 510 Stage 1: Have a Solid Technical Foundation 511 Stage 2: Know the ABCs (Architecture Business Cycles) of Embedded Systems 512 Stage 3: Define the Architectural Patterns and Reference Models 523 Stage 4: Define the Architectural Structures 530 Stage 5: Document the Architecture 533 Stage 6: Analyze and Evaluate the Architecture 535 11.2 Summary 537 Chapter 11 Problems 538 Chapter 12: The Final Phases of Embedded Design: Implementation and Testing 541 12.1 Implementing the Design 541 12.1.1 The Main Software Utility Tool: Writing Code in an Editor or IDE 542 12.1.2 Computer-Aided Design (CAD) and the Hardware 543 12.1.3 Translation Tools Preprocessors, Interpreters, Compilers, and Linkers 545 12.1.4 Debugging Tools 548 12.1.5 System Boot-Up 555 12.2 Quality Assurance and Testing of the Design 563 12.3 Conclusion: Maintaining the Embedded System and Beyond 566 Chapter 12 Problems 567 Appendix A: Projects and Exercises 571 Section I Projects 574 Section II Projects 578 IX

Section III Projects 586 Section IV Projects 589 Appendix B: Schematic Symbols 594 Appendix C: Acronyms and Abbreviations 601 Appendix D: Glossary 610 Index 627 What's on the CD-ROM 640