Skip to main content

Linux for Embedded and Real-time Applications

This new edition of Linux for Embedded and Real-Time Applications provides a practical introduction to the basics and the latest developments in this rapidly evolving technolog… Read more

Early spring sale

Nurture your knowledge

Grow your expertise with up to 25% off trusted resources.

Description

This new edition of Linux for Embedded and Real-Time Applications provides a practical introduction to the basics and the latest developments in this rapidly evolving technology. Ideal for those new to using Linux in an embedded environment, it takes a hands-on approach and covers key concepts plus specific applications.

Key features include:

  • Substantially updated to focus on a specific ARM-based single board computer (SBC) as a target for embedded application programming
  • Includes an introduction to Android programming
  • With this book you will learn:

    • The basics of Open Source, Linux and the embedded space
    • How to set up a simple system and tool chain
    • How to use simulation for initial application testing
    • Network, graphics and Android programming
    • How to use some of the many Linux components and tools
    • How to configure and build the Linux kernel, BusyBox and U-Boot bootloader
    • Key features

      • Provides a hands-on introduction for engineers and software developers who need to get up to speed quickly on embedded Linux, its operation and its capabilities – including Android
      • Updated and changed accompanying tools, with a focus on the author’s specially-developed Embedded Linux Learning Kit

      Readership

      Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students

      Table of contents

      Dedication

      Preface

      Audience and Prerequisites

      Personal Biases

      Organization

      Part 1: Introduction and Getting Started

      Chapter 1. The Embedded and Real-Time Space

      What Is Embedded?

      What Is Real-Time?

      How and Why Does Linux Fit In?

      Where Is Linux Embedded?

      Open Source Licensing

      Resources

      Chapter 2. Installing Linux

      Distributions

      Hardware Requirements

      Installation Scenarios

      DVD or Live CD?

      Installation Process

      Resources

      Chapter 3. Introducing Linux

      Running Linux—KDE

      Linux Features

      Protected Mode Architecture

      The Linux Process Model

      The Linux File System

      System Configuration

      The Shell

      Getting Help

      Resources

      Chapter 4. The Host Development Environment

      Cross-Development Tools—The GNU Tool Chain

      Install Software

      The Terminal Emulator, minicom

      Networking

      Resources

      Chapter 5. The Hardware

      Embedded Hardware

      ARM Single Board Computer

      What About Other Boards?

      Setting Up the Mini2440

      Flash Memory and File Systems

      Preparing the Board

      The Boot Loader

      Resources

      Chapter 6. Eclipse Integrated Development Environment

      Overview

      Installation

      Using Eclipse

      The C Development Environment—CDT

      The Program

      Building the Project

      Debugging with CDT

      Finish Debugging

      Summary

      Resources

      Part 2: Application Programming in a Cross-Development Environment

      Chapter 7. Accessing Hardware from User Space

      Review

      ARM I/O Architecture

      Accessing I/O from Linux—Our First Program

      The led Program

      A Data Acquisition Example

      Resources

      Chapter 8. Debugging Embedded Software

      Remote Debugging with Eclipse

      A Thermostat

      Host Workstation as Debug Environment

      Debugger Services Framework

      Resources

      Chapter 9. Posix Threads

      Threads

      Synchronization—Mutexes

      Communication—Condition Variables

      Thread Termination and Cancellation

      Pthreads Implementations

      Upgrading the Thermostat

      Debugging Multithreaded Programs

      Resources

      Chapter 10. Embedded Networking

      Sockets

      A Simple Example

      A Remote Thermostat

      Embedded Web Servers

      A “Real” Web Server—Boa

      Embedded E-mail

      Other Application-Level Protocols

      Resources

      Chapter 11. Configuring and Building the Kernel

      Getting Started

      Kernel Makefile

      Patching the Kernel

      Configuring the Kernel—make config, menuconfig, xconfig

      Behind the Scenes—What’s Really Happening

      Building the Kernel

      Booting the New Kernel

      Resources

      Chapter 12. Kernel Modules and Device Drivers

      Kernel Modules

      What’s a Device Driver Anyway?

      Linux Device Drivers

      Debugging Kernel Code

      Handling Interrupts

      Building Your Driver into the Kernel

      Resources

      Part 3: Components and Tools

      Chapter 13. BusyBox and Linux Initialization

      Introducing BusyBox

      Configuring and Installing BusyBox

      Using BusyBox

      A Thermostat Display

      User Space Initialization

      Resources

      Chapter 14. U-Boot Boot Loader and Getting Ready to Ship

      U-Boot

      Creating a Flash File System

      Resources

      Chapter 15. Source Code Control—GIT

      Background

      Introducing Git

      Configuring Git

      Graphical Git

      Resources

      Chapter 16. Build Tools

      Buildroot

      OpenEmbedded

      Android

      Wrap Up

      Resources

      Appendix A: U-Boot Commands

      Information Commands

      Memory Commands

      NOR Flash Memory Commands

      NAND Flash Memory Commands

      Execution Control Commands

      Download Commands

      Environment Variable Commands

      Environment Variables

      Appendix B: Why Software Should Not Have Owners

      Product details

      About the author

      DA

      Doug Abbott

      Doug Abbott is a consultant with over thirty years’ experience, specializing in hardware and software for industrial and scientific data acquisition and embedded product applications. Doug is also a popular instructor and seminar leader, who teaches classes in PC technology and real-time programming for University of California Berkeley Extension. He has taught the techniques of real-time programming and multi-tasking operating systems to hundreds of professional engineers.

      Doug Abbott is the principal of Intellimetrix, a consulting firm in Silver City, NM, specializing in hardware and software for industrial and scientific data acquisition and embedded product applications. Among his past and pre-sent clients are Agilent Technologies, Tektronix, Sandia National Laboratory and numerous smaller high-tech com-panies in Silicon Valley.

      Mr. Abbott has over thirty years experience in various aspects of computer hardware and software design and has been an independent consultant for the past fifteen years. Prior to founding Intellimetrix, he managed software de-velopment for DSP Technology, Inc, a leading supplier of high-speed instrumentation.

      Doug is also a popular instructor and seminar leader, who teaches classes in PC technology and real-time program-ming for University of California Berkeley Extension. He has taught the techniques of real-time programming and multi-tasking operating systems to hundreds of professional engineers. These classes can also be customized and made available for on-site presentation.

      Mr. Abbott received an MSEE degree from the University of California at Berkeley.

      Affiliations and expertise
      President, Intellimetrix, Inc., Silver City, NM, USA

      View book on ScienceDirect

      Read Linux for Embedded and Real-time Applications on ScienceDirect