Linux for Embedded and Real-time Applications,
Edition 3Editors: By Doug Abbott
Conformance
-
PDF/UA-1
-
The publication contains a conformance statement that it meets the EPUB Accessibility 1.1, WCAG 2.1, Level AA standard. Please see https://bornaccessible.benetech.org/certified-publishers/ for further details of our compatibility testing.
-
The publication was certified on 20250625
-
Accessibility addendum
-
The certifier's credential is https://bornaccessible.benetech.org/certified-publishers/
-
For detailed accessibility information, see Elsevier’s website at https://www.elsevier.com/about/accessibility
-
Compatibility tested
-
For queries regarding accessibility information, contact [email protected]
Ways Of Reading
-
This e-publication is accessible to the full extent that the file format and types of content allow, on a specific reading device, by default, without necessarily including any additions such as textual descriptions of images or enhanced navigation.
-
All contents of the digital publication necessary to use and understanding, including any text, images (via alternative descriptions), video (via audio description) is fully accessible via suitable audio reproduction.
Navigation
-
The contents of the PDF have been tagged to permit access by assistive technologies as per PDF-UA-1 standard.
-
Page breaks included from the original print source
Additional Accessibility Information
-
All (or substantially all) textual matter is arranged in a single logical reading order (including text that is visually presented as separate from the main text flow, e.g., in boxouts, captions, tables, footnotes, endnotes, citations, etc.). Non-textual content is also linked from within this logical reading order. (Purely decorative non-text content can be ignored).
-
The language of the text has been specified (e.g., via the HTML or XML lang attribute) to optimise text-to-speech (and other alternative renderings), both at the whole document level and, where appropriate, for individual words, phrases or passages in a different language.
-
For readers with color vision deficiency, use of color (e.g., in diagrams, graphics and charts, in prompts, or on buttons inviting a response) is not the sole means of graphical distinction or of conveying information
-
Content is enhanced with ARIA roles to optimize organization and facilitate navigation
-
Where interactive content is included in the product, controls are provided (e.g., for speed, pause and resume, reset) and labelled to make their use clear.
Note
-
This product relies on 3rd party tooling which may impact the accessibility features visible in inspection copies. All accessibility features mentioned would be present in the purchased version of the title.
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
About the author
By Doug Abbott, President, Intellimetrix, Inc., Silver City, NM, USA
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