Books & Videos

Table of Contents

  1. Chapter 1 Introduction

    1. What Is an Embedded System?

    2. Variations on a Theme

    3. Embedded Design Examples

    4. Life As an Embedded Software Developer

    5. The C Language: The Lowest Common Denominator

    6. A Few Words About Hardware

  2. Chapter 2 Getting to Know the Hardware

    1. Understanding the Big Picture

    2. Hardware Basics

    3. Examine the Landscape

    4. Learn How to Communicate

    5. Getting to Know the Processor

    6. Study the External Peripherals

    7. Initialize the Hardware

  3. Chapter 3 Your First Embedded Program

    1. Hello, World!

    2. The Blinking LED Program

    3. The Role of the Infinite Loop

  4. Chapter 4 Compiling, Linking, and Locating

    1. The Build Process

    2. Building the Blinking LED Program

    3. A Quick Look at Makefiles

  5. Chapter 5 Downloading and Debugging

    1. Downloading the Blinking LED Program

    2. Remote Debuggers

    3. Emulators

    4. Other Useful Tools

    5. Dig into the Hardware

  6. Chapter 6 Memory

    1. Types of Memory

    2. Direct Memory Access

    3. Endian Issues

    4. Memory Testing

    5. Validating Memory Contents

    6. Using Flash Memory

  7. Chapter 7 Peripherals

    1. Control and Status Registers

    2. The Device Driver Philosophy

    3. Device Driver Design

  8. Chapter 8 Interrupts

    1. Overview

    2. Interrupt Map

    3. Interrupt Service Routine

    4. The Improved Blinking LED Program

    5. Summary of Interrupt Issues

  9. Chapter 9 Putting It All Together

    1. Application Overview

    2. Working with Serial Ports

    3. Command-Line Interface Processing

  10. Chapter 10 Operating Systems

    1. History and Purpose

    2. The Scheduler

    3. Tasks

    4. Task Synchronization

    5. Message Passing

    6. Other Functionality

    7. Interrupt Handling

    8. Real-Time Characteristics

    9. To Use or Not to Use an RTOS

    10. Additional Resources

  11. Chapter 11 eCos Examples

    1. Introduction

    2. Task Mechanics

    3. Mutex Task Synchronization

    4. Semaphore Task Synchronization

    5. Message Passing

    6. eCos Interrupt Handling

  12. Chapter 12 Embedded Linux Examples

    1. Introduction

    2. Accessing Hardware in Linux

    3. Task Mechanics

    4. Mutex Task Synchronization

    5. Semaphore Task Synchronization

    6. Message Passing

  13. Chapter 13 Extending Functionality

    1. Common Peripherals

    2. Networking for All Devices Great and Small

  14. Chapter 14 Optimization Techniques

    1. Increasing Code Efficiency

    2. Decreasing Code Size

    3. Problems with Optimizing Compilers

    4. Reducing Memory Usage

    5. Power-Saving Techniques

    6. Limiting the Impact of C++

  1. Appendix 1 The Arcom VIPER-Lite Development Kit

  2. Appendix 2 Setting Up Your Software Development Environment

    1. Windows Host Installation

    2. Linux Host Installation

    3. Example Code Installation

  3. Appendix 3 Building the GNU Software Tools

    1. Extracting the Source Files

    2. Building the Toolchain

  4. Appendix 4 Setting Up the eCos Development Environment

    1. The eCos Build Environment

  5. Appendix 5 Setting Up the Embedded Linux Development Environment

    1. Linux Build Environment Setup

    2. Embedded Linux Examples