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
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
- Abbott, Linux for Embedded and Real-Time Applications, Newnes, 2006, 352pp, Paperback, $62.95 /£38.99 /€44.95, ISBN 9780750679329
- Hallinan: Embedded Linux Primer, 2e, Prentice Hall, 2010, 656pp, Hardback, $49.99/ £36.99, ISBN: 9780137017836
- Hallinan: Embedded Linux Primer Prentice Hall, 2006, 576pp, Paperback, $49.99/ £31.99, ISBN: 9780131679849
Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students