Atnaujinkite slapukų nuostatas

El. knyga: Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems

3.60/5 (10 ratings by Goodreads)
(Principal Engineer, Intelligent Systems Group, Intel Corporation), (Associate Professor, Computer Science & Engineering, Washington University in St. Louis)
  • Formatas: EPUB+DRM
  • Išleidimo metai: 25-Jan-2012
  • Leidėjas: Morgan Kaufmann Publishers In
  • Kalba: eng
  • ISBN-13: 9780123944078
  • Formatas: EPUB+DRM
  • Išleidimo metai: 25-Jan-2012
  • Leidėjas: Morgan Kaufmann Publishers In
  • Kalba: eng
  • ISBN-13: 9780123944078

DRM apribojimai

  • Kopijuoti:

    neleidžiama

  • Spausdinti:

    neleidžiama

  • El. knygos naudojimas:

    Skaitmeninių teisių valdymas (DRM)
    Leidykla pateikė šią knygą šifruota forma, o tai reiškia, kad norint ją atrakinti ir perskaityti reikia įdiegti nemokamą programinę įrangą. Norint skaityti šią el. knygą, turite susikurti Adobe ID . Daugiau informacijos  čia. El. knygą galima atsisiųsti į 6 įrenginius (vienas vartotojas su tuo pačiu Adobe ID).

    Reikalinga programinė įranga
    Norint skaityti šią el. knygą mobiliajame įrenginyje (telefone ar planšetiniame kompiuteryje), turite įdiegti šią nemokamą programėlę: PocketBook Reader (iOS / Android)

    Norint skaityti šią el. knygą asmeniniame arba „Mac“ kompiuteryje, Jums reikalinga  Adobe Digital Editions “ (tai nemokama programa, specialiai sukurta el. knygoms. Tai nėra tas pats, kas „Adobe Reader“, kurią tikriausiai jau turite savo kompiuteryje.)

    Negalite skaityti šios el. knygos naudodami „Amazon Kindle“.

Modern embedded systems are used for connected, media-rich, and highly integrated handheld devices such as mobile phones, digital cameras, and MP3 players. All of these embedded systems require networking, graphic user interfaces, and integration with PCs, as opposed to traditional embedded processors that can perform only limited functions for industrial applications. While most books focus on these controllers, Modern Embedded Computing provides a thorough understanding of the platform architecture of modern embedded computing systems that drive mobile devices.

The book offers a comprehensive view of developing a framework for embedded systems-on-chips. Examples feature the Intel Atom processor, which is used in high-end mobile devices such as e-readers, Internet-enabled TVs, tablets, and net books. Beginning with a discussion of embedded platform architecture and Intel Atom-specific architecture, modular chapters cover system boot-up, operating systems, power optimization, graphics and multi-media, connectivity, and platform tuning. Companion lab materials compliment the chapters, offering hands-on embedded design experience.

  • Learn embedded systems design with the Intel Atom Processor, based on the dominant PC chip architecture. Examples use Atom and offer comparisons to other platforms
  • Design embedded processors for systems that support gaming, in-vehicle infotainment, medical records retrieval, point-of-sale purchasing, networking, digital storage, and many more retail, consumer and industrial applications
  • Explore companion lab materials online that offer hands-on embedded design experience

Recenzijos

"There is need for a good, comprehensive book on embedded design and the lab-based approach using the Intel Architecture is very good and practical." --Tilman Wolf, Associate Professor, Department of Electrical and Computer Engineering, University of Massachusetts, Amherst

Daugiau informacijos

A comprehensive guide to embedded system development with the Intel Atom processor, a leading processor in high-end mobile devices.
Preface xix
Foreword xxi
Acknowledgments xxv
PART 1 PRINCIPLES OF MODERN EMBEDDED SYSTEMS
Chapter 1 Embedded Systems Landscape
3(6)
What Is an Embedded Computer System?
3(2)
Applications and Form Factors
4(1)
Power
4(1)
System Resources and Features
5(1)
User Assumptions
5(1)
Why Is This Transition Inevitable?
5(2)
What Range of Embedded Systems Exists?
7(1)
What to Expect from the Rest of This Book
8(1)
Chapter 2 Attributes of Embedded Systems
9(14)
Embedded Platform Characteristics
12(9)
Central Processing Unit (CPU)
12(1)
Integration Level
13(1)
Power Consumption
14(1)
Form Factor
15(2)
Expansion
17(1)
Application-Specific Hardware
17(1)
Certification
18(1)
Reliability/Availability
18(1)
User Interfaces
19(1)
Connectivity
20(1)
Security
20(1)
Summary
21(2)
Chapter 3 The Future of Embedded Systems
23(18)
Technology Trends
23(7)
Computation
24(1)
Connectivity
25(4)
Storage
29(1)
Sensing
30(1)
Issues, Applications, and Initiatives
30(4)
Energy
30(2)
Security
32(1)
Health
33(1)
Challenges and Uncertainties
34(2)
Open Systems, Internet Access, and Neutrality
34(1)
Privacy
35(1)
Successful Commercialization
36(1)
Summary
36(5)
PART 2 EMBEDDED SYSTEMS ARCHITECTURE AND OPERATION
Chapter 4 Embedded Platform Architecture
41(58)
Platform Overview
41(20)
Processor
41(2)
System Memory Map
43(1)
Interrupt Controller
44(11)
Timers
55(6)
Volatile Memory Technologies
61(6)
DRAM Controllers
62(4)
SRAM Controllers
66(1)
Nonvolatile Storage
67(6)
NOR Flash
68(2)
NAND Flash
70(2)
Hard Disk Drives and Solid State Drives
72(1)
Device Interface---High Performance
73(7)
Peripheral Component Interconnect (PCI)
74(6)
Universal Serial Bus
80(9)
Programming Interface
85(4)
Linux Driver
89(1)
Device Interconnect---Low Performance
89(7)
Inter-Integrated Circuit Bus
89(2)
System Management Bus (SMBus)
91(1)
Serial Peripheral Interface (SPI)
92(1)
Audio Buses
93(1)
Inter IC Sound (I2S)
93(1)
Universal Asynchronous Receiver/Transmitter
93(3)
General-Purpose Input/Output
96(1)
Power Delivery
97(1)
Summary
97(2)
Chapter 5 Embedded Processor Architecture
99(54)
Basic Execution Environment
99(8)
Privilege Levels
103(1)
Floating-Point Units
104(1)
Processor Specifics
105(2)
Application Binary Interface
107(5)
Processor Instruction Classes
112(9)
Immediate Operands
113(1)
Register Operands
113(1)
Memory Operands
114(1)
Data Transfer Instructions
114(1)
Arithmetic Instructions
115(3)
Branch and Control Flow Instructions
118(1)
Structure/Procedure Instructions
119(1)
SIMD Instructions
120(1)
Exceptions/Interrupts Model
121(3)
Precise and Imprecise Exceptions
122(2)
Vector Table Structure
124(2)
Exception Frame
126(1)
Masking Interrupts
126(2)
Acknowledging Interrupts
128(1)
Interrupt Latency
128(2)
Memory Mapping and Protection
130(1)
Memory Management Unit
131(4)
Translation Caching
135(1)
MMU and Processes
135(1)
Memory Hierarchy
136(9)
Local Memory
138(1)
Cache Hierarchy
138(4)
Cache Coherency
142(3)
System Bus Interface
145(1)
Memory Technology
145(1)
Intel Atom Microarchitecture (Supplemental Material)
145(8)
Microarchitecture
146(3)
Front End
149(2)
Memory Execution Cluster
151(1)
Bus Cluster
152(1)
Chapter 6 Embedded Platform Boot Sequence
153(26)
Multi-Core and Multi-Processor Boot
153(1)
Boot Technology Considerations
154(2)
Hardware Power Sequences (the Pre-Pre-Boot)
156(1)
Reset: The First Few Steps and a Jump
157(2)
Early Initialization
159(4)
CPU Initialization
159(1)
IA Microcode Update
159(2)
Device Initialization
161(1)
Memory Configuration
161(1)
Post-Memory Setup
162(1)
Shadowing
163(1)
AP Processor Initialization
163(1)
Advanced Initialization
164(5)
General-Purpose Input/Output
164(1)
Interrupt Controller
164(1)
Timers
165(1)
Cache Control
165(1)
UART Serial Ports
166(1)
Debug Output
166(1)
Configuration Storage
167(1)
PCIe Bus Initialization
167(1)
Image Storage
168(1)
USB
168(1)
SATA
168(1)
SDIO
168(1)
Legacy BIOS and UEFI Framework Software
169(7)
Legacy Operating System Boot
169(4)
Extensible Firmware Interface
173(3)
Cold and Warm Boot
176(1)
Summary
177(2)
Chapter 7 Operating Systems Overview
179(48)
Application Interface
179(2)
OS Application Interface
179(1)
OS Service Calls
180(1)
Processes, Tasks, and Threads
181(5)
Task Context
184(1)
Task State and State Transitions
184(2)
Scheduling
186(5)
Simple FIFO Scheduler
186(1)
Round-Robin Scheduler with Priority and Preemption
187(2)
Linux Kernel's Scheduler
189(1)
POSIX-Compliant Scheduler
190(1)
Memory Allocation
191(4)
Virtual Memory and Protection
193(2)
Freeing Memory
195(1)
Swapping Memory
195(1)
Clocks and Timers
195(2)
Synchronous Execution
195(1)
Asynchronous Execution
196(1)
Time of Day
197(1)
Mutual Exclusion/Synchronization
197(5)
Device Driver Models
202(10)
Low-Level Data Path
207(2)
Direct Memory Access
209(1)
Memory Addresses
210(2)
Bus Drivers
212(1)
Networking
213(3)
Buffer Management
215(1)
Polling Interface
215(1)
Acceleration
216(1)
Storage File Systems
216(3)
Device Wear and Tear
218(1)
Power Interactions
219(1)
Power Management
219(2)
Real Time
221(3)
Device Interrupt Delivery
221(1)
Processor Interrupt Handler
222(1)
Deferred Task
222(1)
RTOS Characteristics
223(1)
Licensing
224(3)
Chapter 8 Embedded Linux
227(42)
Tool Chain
227(4)
Getting the Tools
228(1)
Tools Overview
229(2)
Anatomy of an Embedded Linux
231(3)
Building a Kernel
234(12)
Kernel Build
234(2)
Kernel Options
236(3)
Root File System Build
239(3)
Busybox
242(1)
C Library
243(1)
Boot Sequence
244(2)
Debugging
246(3)
Debugging Applications
246(1)
Kernel Debugging
247(2)
Driver Development
249(13)
Character Driver Model
250(6)
PCI Device Drivers
256(2)
Interrupt Handling
258(4)
Memory Management
262(5)
User Space
262(1)
Access to User Space Memory from the Kernel
262(1)
Kernel Allocation
263(1)
Page Allocation
264(1)
The kmalloc() Function
265(1)
PCI Memory Allocation and Mapping
265(2)
Synchronization/Locking
267(1)
Atomic Operations
267(1)
Spinlock
267(1)
Semaphore
268(1)
Summary
268(1)
Chapter 9 Power Optimization
269(22)
Power Basics
269(1)
The Power Profile of an Embedded Computing System
270(1)
Constant Versus Dynamic Power
271(2)
Constant Power
271(1)
Dynamic Power
271(2)
A Simple Model of Power Efficiency
273(2)
Advanced Configuration and Power Interface (ACPI)
275(6)
Idle Versus Sleep
277(1)
ACPI System States
277(1)
Global System States (Gx States)
278(1)
Sleep States (Sx States)
278(1)
Device Power States (Dx States)
279(1)
Processor Power States (Cx States)
280(1)
Processor Performance States (Px States)
280(1)
Enhanced Intel SpeedStep Technology
281(1)
Optimizing Software for Power Performance
281(8)
Race to Sleep
281(1)
The Linux PowerTOP Tool
282(1)
Basic PowerTOP Usage
282(2)
Using PowerTOP to Evaluate Software and Systems
284(5)
Summary
289(2)
Chapter 10 Embedded Graphics and Multimedia Acceleration
291(26)
Screen Display
293(4)
Display Engine
293(3)
Window Management
296(1)
Screen Composition
296(1)
Embedded Pannels
297(2)
Display Query and Timing
299(1)
Copy Protection
299(1)
Graphics Stack
299(2)
Accelerated Media Decode
301(3)
Lip Syncing
303(1)
Video Capture and Encoding
304(6)
Video Capture
304(6)
Media Frameworks
310(5)
GStreamer
310(3)
OpenMAX™
313(2)
Framework Summary
315(1)
Summary
315(2)
Chapter 11 Digital Signal Processing Using General-Purpose Processors
317(30)
Overview
318(6)
Signals
318(1)
DSP Building Blocks
319(2)
Data Acquisition
321(1)
Fixed-Point and Floating-Point Implementations
322(2)
Single Instruction Multiple Data
324(1)
SIMD Microarchitecture and Instructions
324(1)
Operating System
324(1)
Microarchitecture Considerations
325(1)
Implementation Options
325(1)
Intrinsics and Data Types
326(2)
Vectorization
328(3)
Performance Primitives
331(1)
Finite Impulse Response Filter
332(5)
FIR Example: C Code
333(1)
FIR Example: Intel Performance Primitives
333(1)
FIR Example: Intel SSE
334(3)
Application Examples
337(9)
Codec
337(2)
Medical Ultrasound Imaging
339(5)
Performance Results
344(2)
Summary
346(1)
Chapter 12 Network Connectivity
347(32)
Networking Basics
349(4)
Layering and Network Software
349(1)
Node Operation and Network Hardware
350(1)
Sockets and a Simple Example
351(2)
TCP/IP Networking
353(8)
Governance, the IETF, and RFCs
354(1)
Addresses, Packets, and Routes
355(4)
Port Numbers, Byte Ordering, and OS Tools
359(1)
Supporting Protocols and Services
360(1)
Ethernet
361(4)
History
361(1)
Protocol Description
362(1)
Ethernet MAC Addresses
363(1)
Ethernet Packet Format
363(1)
A Gigabit Ethernet Controller and Its Features
364(1)
Wi-Fi and IEEE 802.11
365(4)
History
366(1)
Protocol Description
366(1)
Frame Format
367(1)
A Wi-Fi Adapter and Its Features
368(1)
Bluetooth
369(3)
History
369(1)
Protocol Details
369(1)
Packet Format
370(2)
Linux Networking
372(6)
Tools and Monitor and Control Network Interfaces and Sockets
372(1)
Programming Sockets in C
372(4)
Linux Kernel Networking Structures
376(2)
Summary
378(1)
Chapter 13 Application Frameworks
379(18)
Overview
379(1)
Android
379(13)
Android Framework Architecture
381(3)
Android Application Architecture
384(5)
Android Development Environment
389(2)
Deployment
391(1)
Qt
392(2)
Qt Application Development Framework
392(2)
Qt Creator
394(1)
Other Environments
394(1)
More Resources
395(1)
Summary
395(2)
Chapter 14 Platform and Content Security
397(26)
Security Principles
398(4)
Confidentiality, Integrity, and Availability (CIA)
400(2)
Security Concepts and Building Blocks
402(18)
Encryption and Cryptography
402(2)
Secure Web Communications: TLS
404(3)
Secure Shell (SSH)
407(1)
Security Architecture for IP: IPSec
408(3)
Two-Factor Authentication
411(1)
Major Categories of Security Attacks
411(5)
Firewalls
416(3)
Servers and Logs
419(1)
Platform Support for Security
420(1)
Summary
421(2)
Chapter 15 Advanced Topics: SMP, AMP, and Virtualization
423(22)
Multiprocessing Basics
424(9)
History and Motivation
424(4)
A Concrete Example
428(4)
Physical versus Logical Cores
432(1)
Impact on Systems and Software
432(1)
Symmetric Multiprocessing
433(2)
Overview
433(1)
Linux SMP Support
433(2)
Interprocess Communication
435(1)
Asymmetric Multiprocessing
435(2)
Concepts and Motivation
436(1)
System Organization
436(1)
Virtualization Basics
437(1)
History and Motivation
437(1)
Basic Concepts
437(1)
Methods for Platform Virtualization
438(4)
Paravirtualization
438(1)
Hardware Support for Virtualization
439(1)
Linux VServers
439(1)
Xen™
439(1)
Xenomai
440(2)
Summary
442(3)
PART 3 DEVELOPING AN EMBEDDED SYSTEM
Chapter 16 Example Designs
445(20)
Intel Atom E6XX Series Platforms
445(7)
Architecture Overview
446(2)
Platform Controller Hub(s)
448(4)
Multi-Radio Communications Design
452(6)
Hardware Platform
452(3)
Software Platform
455(3)
Multimedia Design
458(5)
Hardware Platform
458(1)
Software Platform
459(4)
Modular References
463(1)
Summary
464(1)
Chapter 17 Platform Debug
465(12)
Debugging New Platforms
465(1)
A Process for Debugging a New Platform
466(1)
Debug Tools and Chipset Features
467(2)
Oscilloscopes
468(1)
Logic Analyzers
468(1)
Bus Analyzers
468(1)
Power-On Self-Test (POST) Cards
468(1)
JTAG Adapters
469(1)
Debug Process Details
469(5)
Visual Examination
469(1)
Hardware Evaluation
470(4)
Software Evaluation
474(1)
Additional Resources
474(1)
Summary
475(2)
Chapter 18 Performance Tuning
477(20)
What Are Patterns?
477(1)
General Approaches
478(5)
Defined Performance Requirement
478(1)
Performance Design
478(1)
Premature Code Tuning Avoided
479(1)
Step-by-Step Records
479(1)
Slam-Dunk Optimization
480(1)
Best Compiler for Application
480(1)
Compiler Optimizations
481(1)
Data Cache
482(1)
Code and Design
483(5)
Reordered Struct
483(1)
Supersonic Interrupt Service Routines
483(1)
Assembly-Language-Critical Functions
484(1)
Inline Functions
484(1)
Cache-Optimizing Loop
484(1)
Minimizing Local Variables
485(1)
Explicit Registers
485(1)
Optimized Hardware Register Use
485(1)
Avoiding the OS Buffer Pool
486(1)
C Language Optimizations
486(1)
Disabled Counters/Statistics
487(1)
Processor-Specific
488(4)
Stall Instructions
488(1)
Profiling Tools
488(1)
Prefetch Instructions
489(1)
Separate DRAM Memory Banks
489(1)
Line-Allocation Policy
490(1)
Cache Write Policy
490(1)
Cache-Aligned Data Buffers
491(1)
On-Chip Memory
491(1)
Optimized Libraries
491(1)
Modulo/Divide Avoided
492(1)
Networking Techniques
492(5)
Bottleneck Hunting
492(1)
Evaluating Traffic Generator and Protocols
493(1)
Environmental Factors
494(3)
References 497(6)
Index 503
Peter Barry serves as principal engineer in the Intel Embedded & Communications Group. He has worked in the development of embedded systems for over twenty years in Intel, Basic Communications, Nortel Networks and Tellabs, working with processors from Z80, 68K, PowerPC, ARM, XScale and Intel architecture systems. He is an expert in embedded operating systems and embedded platforms, and has developed board support packages for proprietary RTOS, pSOS, VxWorks, WinCE and Linux. He has developed protocol stacks and applications primarily for data communications and telecommunications and industrial applications. Patrick Crowley is an associate Professor in the Department of Computer Science & Engineering at Washington University in St. Louis, Missouri. His research interests are in computer and network systems architecture, with a current focus on the design of programmable embedded network systems and the invention of superior network monitoring and security techniques. He co-founded the ACM/IEEE Symposium on Architectures for Networking and Communications Systems, and co-edited the three-book series, Network Processor Design. He serves as Associate Editor of the IEEE/ACM Transactions on Networking. In 2007, Crowley was chosen to join the DARPA Computer Science Study Group.