Muutke küpsiste eelistusi

Linux for Embedded and Real-time Applications 3rd edition [Pehme köide]

(President, Intellimetrix, Inc., Silver City, NM, USA)
  • Formaat: Paperback / softback, 296 pages, kõrgus x laius: 235x191 mm, kaal: 470 g, Illustrated; Illustrations, unspecified, Contains 1 Digital (delivered electronically)
  • Ilmumisaeg: 15-Nov-2012
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • ISBN-10: 0124159966
  • ISBN-13: 9780124159969
Teised raamatud teemal:
  • Formaat: Paperback / softback, 296 pages, kõrgus x laius: 235x191 mm, kaal: 470 g, Illustrated; Illustrations, unspecified, Contains 1 Digital (delivered electronically)
  • Ilmumisaeg: 15-Nov-2012
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • ISBN-10: 0124159966
  • ISBN-13: 9780124159969
Teised raamatud teemal:

Linux technology is swiftly evolving, and is rapidly becoming the embedded operating system of choice. Increasing numbers of engineers therefore need to understand and use embedded Linux, but do not have time to sift through the mass of information currently available, which is often too specialized. This book - a new edition of Linux for Embedded and Real-Time Applications - provides a practical introduction to the basics and the latest developments in embedded Linux, taking a hands-on approach and covering key concepts plus specific applications. The author has shifted the focus away from real-time applications, but still provides comprehensive coverage of the embedded Linux lifecycle, from set-up to shipping.

  • 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


Muu info

Get hands-on experience of embedded Linux, including Android application development, with this essential update
Preface xv
Part 1 Introduction and Getting Started
1(98)
Chapter 1 The Embedded and Real-Time Space
3(10)
What Is Embedded?
3(1)
What Is Real-Time?
4(1)
How and Why Does Linux Fit In?
5(2)
Open Source
5(2)
Portable and Scalable
7(1)
Where Is Linux Embedded?
7(1)
Open Source Licensing
8(3)
Legal Issues
10(1)
Resources
11(2)
Chapter 2 Installing Linux
13(12)
Distributions
13(3)
Debian GNU/Linux
14(1)
Fedora
14(1)
Red Hat Enterprise Linux
15(1)
SUSE
15(1)
Ubuntu
16(1)
Hardware Requirements
16(1)
Installation Scenarios
17(4)
Stand-Alone
17(1)
Dual-Booting
17(3)
Virtualization
20(1)
DVD or Live CD?
21(1)
Installation Process
21(3)
Disk Partitioning
22(1)
Package Selection
23(1)
Resources
24(1)
Chapter 3 Introducing Linux
25(26)
Running Linux---KDE
25(2)
File Manager
25(1)
Shell Window
26(1)
Linux Features
27(2)
Protected Mode Architecture
29(4)
Real Mode
29(1)
Protected Mode
30(1)
"Flat" vs. Segmented Memory Models
31(1)
Paging
32(1)
The Linux Process Model
33(3)
The fork() Function
34(1)
The execve() Function
35(1)
The Linux File System
36(7)
File Permissions
37(1)
The "root" User
38(1)
The /proc File System
39(1)
The Filesystem Hierarchy Standard
40(2)
"Mounting" File Systems
42(1)
System Configuration
43(1)
The Shell
44(4)
Getting Help
48(1)
Resources
49(2)
Chapter 4 The Host Development Environment
51(14)
Cross-Development Tools---The GNU Tool Chain
51(2)
GCC
51(1)
Make
52(1)
GDB
53(1)
Install Software
53(3)
What's on the DVD?
53(1)
Install Cross-Tool Chain
54(1)
Install Root File System
55(1)
The Terminal Emulator, minicom
56(3)
Networking
59(5)
Network Address
59(2)
What About Wireless?
61(1)
Network File System
62(1)
Trivial File Transfer Protocol
63(1)
Resources
64(1)
Chapter 5 The Hardware
65(16)
Embedded Hardware
65(1)
ARM Single Board Computer
65(2)
Specifications
66(1)
What About Other Boards?
67(2)
BeagleBoard
67(1)
Gumstix
68(1)
Raspberry Pi
68(1)
Setting Up the Mini2440
69(1)
Flash Memory and File Systems
70(2)
Flash Memory---NAND and NOR
70(1)
Root File System in Flash
71(1)
Preparing the Board
72(6)
Sample Code
72(1)
Factory_Images
73(1)
The Script Files
73(2)
The Procedure
75(1)
Final Steps
76(1)
What Can Go Wrong?
77(1)
The Boot Loader
78(1)
Resources
79(2)
Chapter 6 Eclipse Integrated Development Environment
81(18)
Overview
82(3)
Plug-ins
84(1)
Workbench
84(1)
Installation
85(1)
Using Eclipse
86(1)
The C Development Environment---CDT
87(3)
Creating a New Project
87(1)
Adding Source Code to the Project
88(1)
Content Assist
89(1)
Code Templates
89(1)
Automatic Closing
89(1)
The Program
90(1)
Building the Project
91(1)
Debugging with CDT
92(5)
The Debug View
94(1)
Variables View
95(1)
Breakpoints View
95(1)
Memory View
96(1)
Finish Debugging
97(1)
Summary
97(1)
Resources
97(2)
Part 2 Application Programming in a Cross-Development Environment
99(112)
Chapter 7 Accessing Hardware from User Space
101(12)
Review
101(1)
ARM I/O Architecture
101(2)
LEDs and Pushbuttons
102(1)
Accessing I/O from Linux---Our First Program
103(3)
Creating a Project
103(1)
The Target Execution Environment
104(2)
The led Program
106(2)
The Makefile
107(1)
A Data Acquisition Example
108(4)
Resources
112(1)
Chapter 8 Debugging Embedded Software
113(18)
Remote Debugging with Eclipse
113(4)
Remote Debug Launch Configuration
114(3)
A Thermostat
117(2)
Host Workstation as Debug Environment
119(5)
Advanced Breakpoint Features
120(4)
Debugger Services Framework
124(6)
Installing SSH
124(2)
Add a Password for Root
126(1)
Configuring RSE
126(3)
Debugging with RSE
129(1)
Resources
130(1)
Chapter 9 Posix Threads
131(18)
Threads
132(2)
Thread Attributes
133(1)
Synchronization---Mutexes
134(5)
Mutex Attributes
136(1)
Problems with Solving the Resource Sharing Problem---Priority Inversion
137(2)
Communication---Condition Variables
139(1)
Condition Variable Attributes
140(1)
Thread Termination and Cancellation
140(2)
Cleanup Handlers
141(1)
Pthreads Implementations
142(2)
Upgrading the Thermostat
144(3)
Linux Device Drivers
145(1)
The Low Level I/O API
145(2)
Changes Required in thermostat
147(1)
Debugging Multithreaded Programs
147(1)
Resources
148(1)
Chapter 10 Embedded Networking
149(20)
Sockets
149(3)
The Server Process
150(1)
The Client Process
151(1)
Socket Attributes
151(1)
A Simple Example
152(2)
The Server
152(1)
The Client
153(1)
A Remote Thermostat
154(3)
Multiple Monitor Threads
155(2)
Embedded Web Servers
157(5)
Background on HTTP
157(2)
A Web-Enabled Thermostat
159(1)
Dynamic Web Content
159(1)
Forms and the POST Method
160(1)
Build and Try it
161(1)
A "Real" Web Server---Boa
162(1)
Embedded E-mail
163(4)
Other Application-Level Protocols
167(1)
Resources
167(2)
Chapter 11 Configuring and Building the Kernel
169(16)
Getting Started
169(4)
Kernel Version Numbering
170(1)
The Kernel Source Tree
171(2)
Kernel Makefile
173(1)
Patching the Kernel
174(1)
Configuring the Kernel---make config, menuconfig, xconfig
175(6)
Xconfig Options
179(1)
Config File
180(1)
Behind the Scenes---What's Really Happening
181(1)
Building the Kernel
182(2)
Workstation Digression
183(1)
Booting the New Kernel
184(1)
Resources
184(1)
Chapter 12 Kernel Modules and Device Drivers
185(26)
Kernel Modules
185(6)
A Module Example
186(2)
"Tainting" the Kernel
188(1)
Kernel Modules and the GPL
189(1)
Building Kernel Modules
189(2)
The Role of a Module
191(1)
What's a Device Driver Anyway?
191(1)
Linux Device Drivers
192(7)
The /dev Directory
193(1)
The Low-Level User Space I/O APIs
194(1)
Internal Driver Structure
194(1)
Driver Data Structures
194(1)
init() and exit()
195(1)
open() and release()
196(1)
read() and write()
197(1)
Building and Running the Driver
198(1)
Debugging Kernel Code
199(2)
printk
199(1)
Proc Files
199(2)
Handling Interrupts
201(6)
Registering an Interrupt Handler
203(1)
Probing for the Interrupt
204(1)
Deferred Processing---the "Bottom Half"
205(2)
Building Your Driver into the Kernel
207(2)
Resources
209(2)
Part 3 Components and Tools
211(46)
Chapter 13 BusyBox and Linux Initialization
213(12)
Introducing BusyBox
213(1)
Configuring and Installing BusyBox
214(5)
BusyBox Settings
214(3)
Applets
217(1)
Building and Installing
218(1)
Using BusyBox
219(1)
A Thermostat Display
219(3)
ANSI Terminal Escape Sequences
220(1)
Thermostat Display
221(1)
Ncurses Library
222(1)
User Space Initialization
222(2)
Stage 1 Boot Loader
222(1)
U-Boot
222(1)
Linux Kernel
223(1)
Init Process
223(1)
Resources
224(1)
Chapter 14 U-Boot Boot Loader and Getting Ready to Ship
225(8)
U-Boot
225(3)
Background
225(1)
Installing and Configuring U-Boot
226(1)
Testing a New U-Boot
227(1)
"JTAGing" the NOR
228(1)
Creating a Flash File System
228(4)
More Thoughts on Flash Partitions
230(1)
The Flat Device Tree
230(2)
Resources
232(1)
Chapter 15 Source Code Control---GIT
233(14)
Background
233(1)
Introducing Git
234(5)
File States and Life Cycle
236(1)
Branching and Merging
237(2)
Configuring Git
239(2)
Graphical Git
241(4)
Creating a New Repository
243(2)
Resources
245(2)
Chapter 16 Build Tools
247(10)
Buildroot
247(2)
OpenEmbedded
249(3)
Getting Started
250(1)
Personal Observations
251(1)
Android
252(3)
Application Development
252(2)
Platform Development
254(1)
Wrap Up
255(1)
Resources
255(2)
Appendix A U-Boot Commands 257(8)
Appendix B Why Software Should Not Have Owners 265(6)
Index 271
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.