
Linux for Embedded and Real-time Applications
Resources
Description
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 capabilities
- Covers the popular open source target boards, the BeagleBone and BeagleBone Black
- Includes new and updated material that focuses on BusyBox, U-Boot bootloader and graphical programming with QT
Readership
Engineers and software developers involved in embedded computing development; Linux programmers; electrical and computer engineering students
Table of Contents
Chapter 1: The Embedded and Real-time Space
What is Embedded?
What is Real-Time?
How and Why Does Linux Fit In?
Open Source
Portable and Scalable
Where is Linux Embedded?
Open Source Licensing
Legal Issues
Alternatives to Linux
Free RTOS
MicroC/OS
Resources
Chapter 2: Installing Linux
Distributions
Debian GNU/Linux
Fedora
CentOS
SUSE
Ubuntu
Hardware Requirements
Installation Scenarios
Stand-Alone
Dual-Booting
Virtualization
DVD or Live CD
Installation Process
Disk Partitioning
Package Selection
Resources
Chapter 3: Introducing Linux
Running Linux – KDE
File Manager
Shell Window
Protected Mode Architecture
Real Mode
Protected Mode
“Flat” vs. Segmented Memory Models
Paging
The Linux Process Model
The fork() Function
The execve() Function
The Linux File System
File Permissions
The “root” User
File System Hierarchy Standard
“Pseudo” File Systems
/proc
/sys
“Mounting” File Systems
The Shell
Getting Help
man pages
Google
The Linux Documentation Project
Resources
Chapter 4: The Host Development Environment
Cross Toolchains
Getting and Installing the Toolchain
Building a Toolchain from Source—crosstool-NG
Network Configuration
Network Address
NFS Server
exports File
The minicom Terminal Emulator
The Target Root File System
Resources
Chapter 5: Eclipse
Overview
Plug-ins
Workbench
Obtaining and Installing Eclipse
Starting Eclipse
The C Development Environment – CDT
Creating a New Project
Adding Source Code to the Project
Content Assist
Code Templates
Automatic Closing
The Program
Building the Project
Debugging with CDT
The Debug View
Variables View
Breakpoints View
Memory View
Finish Debugging
Summary
Resources
Chapter 6: The Hardware
The ARM Architecture
Open Source Hardware
BeagleBoard and Derivatives
Raspberry PI and Derivatives
Arduino
MinnowBoard
Setting Up the Beagle Bone
Flash Memory and File Systems
Boot the Board
What can go wrong?
Beagle Bone Capes
The bootloader—u-boot
Resources
Part 2: Application Programming in a Cross-Development Environment
Chapter 7: Accessing Hardware from User Space
Review
ARM I/O Architecture
User LEDs
Accessing I/O from Linux—Our First Program
Creating a Yocto Project in Eclipse
The Target Execution Environment
The LED Program
The Makefile
A Data Acquisition Example
Accessing the I2C bus
Linux Device Drivers
The Low level I/O API
Resources
Chapter 8: Debugging Embedded Software
Remote Debugging with Eclipse
Remote Debug Launch Configuration
A Thermostat
Host Workstation as Debug Environment
Advanced Breakpoint Features
Debugger Services Framework
Installing SSH
Ad a Password for Root
Configuring RSE
Debugging with RSE
Resources
Chapter 9: Posix Threads
Threads
Thread Attributes
Synchronization—Mutexes
Mutex Attributes
Problems with Solving the Resource Sharing Problem—Priority Inversion
Communication—Condition Variables
Condition Variable Attributes
Thread Termination and Cancellation
Cleanup Handlers
Pthreads Implementation
Upgrading the Thermostat
Changes Required in thermostat.c
Debugging Multithreaded Programs
Resources
Chapter 10: Embedded Networking
Sockets
The Server Process
The Client Process
Socket Attributes
A Simple Example
The Server
The Client
A Remote Thermostat
Multiple Monitor Threads
Embedded Web Servers
Background on HTTP
The boa Web Server
A Web-enabled Thermostat
Embedded email
Other Application-level Protocols
Resources
Chapter 11: Graphics Programming with QT
Part 3: Components and Tools
Chapter 12: Integrated Build Environments
The Problem
Open Embedded
Yocto
Linaro
Chapter 13: Configuring and Building the Kernel
Getting Started
Kernel Version Numbering
“Upstream” vs “Downstream” kernels
The Kernel Source Tree
Kernel Makefile
Configuring the Kernel—make config, menuconfig, xconfig
xconfig options
.config file
Behind the Scenes—What’s Really happening
Building the Kernel
Workstation Digression
Booting the New Kernel
Resources
Chapter 14: BusyBox and Linux Initialization
Introducing BusyBox
Configuring and Installing BusyBox
BusyBox Settings
Applets
Building and Installing
Using BusyBox
System Initialization
Stage 1 Boot Loader
U-Boot
Linux Kernel
User Space Initialization
sysinit
systemd
Resources
Chapter 15: U-Boot Boot Loader and Getting Ready to Ship
U-Boot
Background
Configuring and Installing U-Boot
Testing a New U-Boot
Barebox—the successor to u-Boot
Creating a Flash File System
Thoughts on Flash Partitions
The Device Tree—Bringing Structure to Hardware Description
Resources
Chapter 16: Source Code Control—GIT
Background
Introducing Git
File States and Life Cycle
Branching and Merging
Configuring Git
Graphical Git—Eclipse
Creaging a New Repository
Resources
Chapter 17: Real-time Linux
What is Real-time
Hard vs. Soft Real-time
Why isn’t Linux Real-time?
Preemption Improvement
The Linux Scheduler
PREEMPT_RT patch
Interrupt Abstraction
RTAI and RTLinux
Xenomai
ADEOS
Wrap Up
Resources
Product details
- No. of pages: 304
- Language: English
- Copyright: © Newnes 2017
- Published: November 15, 2017
- Imprint: Newnes
- eBook ISBN: 9780128112786
- Paperback ISBN: 9780128112779
About the Author
Doug Abbott
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
Ratings and Reviews
There are currently no reviews for "Linux for Embedded and Real-time Applications"