Franklin

Linux for Embedded and Real-Time Applications.

Other records:
Author/Creator:
Abbott, Doug.
Edition:
3rd ed.
Publication:
Oxford : Elsevier Science & Technology, 2012.
Series:
Embedded Technology
Embedded Technology
Format/Description:
Book
1 online resource (295 pages)
Subjects:
Linux.
Operating systems (Computers).
Embedded computer systems -- Programming.
Form/Genre:
Electronic books.
Summary:
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.
Contents:
Front Cover
Linux for Embedded and Real-Time Applications
Copyright Page
Dedication
Contents
Preface
Audience and Prerequisites
Personal Biases
Organization
1: Introduction and Getting Started
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
Resources
2: Installing Linux
Distributions
Debian GNU/Linux
Fedora
Red Hat Enterprise Linux
SUSE
Ubuntu
Hardware Requirements
Installation Scenarios
Stand-Alone
Dual-Booting
Virtualization
DVD or Live CD?
Installation Process
Disk Partitioning
Package Selection
Resources
Specific Distribution Sites
Other Resources
3: Introducing Linux
Running Linux-KDE
File Manager
Shell Window
Linux Features
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
The /proc File System
The Filesystem Hierarchy Standard
The /usr Hierarchy
"Mounting" File Systems
System Configuration
The Shell
Getting Help
Resources
4: The Host Development Environment
Cross-Development Tools-The GNU Tool Chain
GCC
Make
GDB
Install Software
What's on the DVD?
Install Cross-Tool Chain
Install Root File System
The Terminal Emulator, minicom
Networking
Network Address
What About Wireless?
Network File System
Trivial File Transfer Protocol
Resources
5: The Hardware
Embedded Hardware
ARM Single Board Computer
Specifications
What About Other Boards?
BeagleBoard
Specifications (Rev. C4)
Gumstix.
Specifications
Raspberry Pi
Specifications
Setting Up the Mini2440
Flash Memory and File Systems
Flash Memory-NAND and NOR
Root File System in Flash
Preparing the Board
Sample Code
factory_images
The Script Files
mini_boot
set-mini_boot
*.sh
The Procedure
Final Steps
What Can Go Wrong?
The Boot Loader
Resources
Sites for Alternate Boards
6: Eclipse Integrated Development Environment
Overview
Plug-ins
Workbench
Installation
Using 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
2: Application Programming in a Cross-Development Environment
7: Accessing Hardware from User Space
Review
ARM I/O Architecture
LEDs and Pushbuttons
Accessing I/O from Linux-Our First Program
Creating a Project
The Target Execution Environment
The led Program
The Makefile
A Data Acquisition Example
Resources
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
Add a Password for Root
Configuring RSE
Debugging with RSE
Resources
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 Implementations
Upgrading the Thermostat.
Linux Device Drivers
The Low Level I/O API
Changes Required in thermostat.c
Debugging Multithreaded Programs
Resources
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
A Web-Enabled Thermostat
Dynamic Web Content
Forms and the POST Method
Build and Try it
A "Real" Web Server-Boa
Embedded E-mail
Other Application-Level Protocols
Resources
11: Configuring and Building the Kernel
Getting Started
Kernel Version Numbering
The Kernel Source Tree
Kernel Makefile
Patching the Kernel
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
12: Kernel Modules and Device Drivers
Kernel Modules
A Module Example
"Tainting" the Kernel
Kernel Modules and the GPL
Building Kernel Modules
The Role of a Module
What's a Device Driver Anyway?
Linux Device Drivers
The /dev Directory
The Low-Level User Space I/O APIs
Internal Driver Structure
Driver Data Structures
init() and exit()
open() and release()
read() and write()
Building and Running the Driver
Debugging Kernel Code
printk
/proc Files
Handling Interrupts
Registering an Interrupt Handler
Probing for the Interrupt
Deferred Processing-the "Bottom Half"
Building Your Driver into the Kernel
Resources
3: Components and Tools
13: BusyBox and Linux Initialization
Introducing BusyBox
Configuring and Installing BusyBox
BusyBox Settings
Applets
Building and Installing
Using BusyBox
A Thermostat Display.
ANSI Terminal Escape Sequences
Thermostat Display
ncurses Library
User Space Initialization
Stage 1 Boot Loader
U-Boot
Linux Kernel
Init Process
Resources
14: U-Boot Boot Loader and Getting Ready to Ship
U-Boot
Background
Installing and Configuring U-Boot
Testing a New U-Boot
"JTAGing" the NOR
Creating a Flash File System
More Thoughts on Flash Partitions
The Flat Device Tree
Resources
15: Source Code Control-GIT
Background
Introducing Git
File States and Life Cycle
Branching and Merging
Configuring Git
Graphical Git
Creating a New Repository
Resources
16: Build Tools
Buildroot
OpenEmbedded
Getting Started
Personal Observations
Android
Application Development
Platform Development
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
Index.
Notes:
Description based on publisher supplied metadata and other sources.
Local notes:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2021. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Other format:
Print version: Abbott, Doug Linux for Embedded and Real-Time Applications
ISBN:
9780123914330
9780124159969
OCLC:
818851439
Loading...
Location Notes Your Loan Policy
Description Status Barcode Your Loan Policy