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
- 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
Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students
Audience and Prerequisites
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
Chapter 2. Installing Linux
DVD or Live CD?
Chapter 3. Introducing Linux
Protected Mode Architecture
The Linux Process Model
The Linux File System
Chapter 4. The Host Development Environment
Cross-Development Tools—The GNU Tool Chain
The Terminal Emulator, minicom
Chapter 5. The Hardware
ARM Single Board Computer
What About Other Boards?
Setting Up the Mini2440
Flash Memory and File Systems
Preparing the Board
The Boot Loader
Chapter 6. Eclipse Integrated Development Environment
The C Development Environment—CDT
Building the Project
Debugging with CDT
Part 2: Application Programming in a Cross-Development Environment
Chapter 7. Accessing Hardware from User Space
ARM I/O Architecture
Accessing I/O from Linux—Our First Program
The led Program
A Data Acquisition Example
Chapter 8. Debugging Embedded Software
Remote Debugging with Eclipse
Host Workstation as Debug Environment
Debugger Services Framework
Chapter 9. Posix Threads
Thread Termination and Cancellation
Upgrading the Thermostat
Debugging Multithreaded Programs
Chapter 10. Embedded Networking
A Simple Example
A Remote Thermostat
Embedded Web Servers
A “Real” Web Server—Boa
Other Application-Level Protocols
Chapter 11. Configuring and Building the Kernel
Patching the Kernel
Configuring the Kernel—make config, menuconfig, xconfig
Behind the Scenes—What’s Really Happening
Building the Kernel
Booting the New Kernel
Chapter 12. Kernel Modules and Device Drivers
What’s a Device Driver Anyway?
Linux Device Drivers
Debugging Kernel Code
Building Your Driver into the Kernel
Part 3: Components and Tools
Chapter 13. BusyBox and Linux Initialization
Configuring and Installing BusyBox
A Thermostat Display
User Space Initialization
Chapter 14. U-Boot Boot Loader and Getting Ready to Ship
Creating a Flash File System
Chapter 15. Source Code Control—GIT
Chapter 16. Build Tools
Appendix A: U-Boot Commands
NOR Flash Memory Commands
NAND Flash Memory Commands
Execution Control Commands
Environment Variable Commands
Appendix B: Why Software Should Not Have Owners
- No. of pages:
- © Newnes 2013
- 15th November 2012
- Paperback ISBN:
- eBook ISBN:
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.
President, Intellimetrix, Inc., Silver City, NM, USA