Index
Note: Page numbers followed by f indicate figures and t indicate table.
802.2 header and data field,
364
A
Acknowledging interrupts,
128
Acknowledgment Number,
358
Address resolution protocol (ARP),
360
ADSL,
Advanced Configuration and Power Interface (ACPI),
171,
275–281
idle versus sleep power,
277
Intel SpeedStep® technology,
281
processor performance (Px),
280–281
processor power (Cx),
280
Advanced initialization, platform boot sequence,
164–168
configuration storage,
167
general-purpose Input/Output,
164
internal error interrupts,
51
functional block diagram of,
52,
53f
register map (portion),
52t
sources of interrupts,
50–52
timer–generated interrupts,
51
Advanced Telecommunications Computing Architecture (ATCA),
10–11
African Network Information Centre (AfriNIC),
355
American Registry for Internet Numbers (ARIN),
355
activity life cycle,
390f
application
intercomponent communication,
386–388
platform architecture,
382f
Virtual Device Manager,
391
Android Development Tools (ADT),
389,
391
Apple iPhone 4
configuration and endpoints,
84t
Application binary interfaces (ABIs),
100,
107–111
data alignment and packing,
108
function calling conventions,
109–110
relocation/relative addressing,
110–111
activity life cycle,
390f
application packaging,
388
intercomponent communication,
386–388
platform architecture,
382f
application development framework,
392–394
Application processors (APs),
153–154
Application programming interfaces (APIs),
214–215
Application-specific integrated circuit (ASIC),
17
Embedded Application Binary Interface,
229
M3–based microcontroller devices,
12
Asia-Pacific Network Information Centre (APNIC),
355
Assembly-language-critical functions,
484
Asymmetric-key cryptography,
403,
410
Asymmetric multiprocessing,
435–437
concepts and motivation,
436
Atmel AVR Microcontrollers,
12
Attributes of embedded systems
central processing unit,
12–13
hardware
application-specific,
17–18
Audio data path, from DECT to VOIP Interface,
462f
Availability, of embedded systems,
18–19
B
Base Address Registers (BARs),
44
application profiles,
370t
Special Interest Group (SIG),
369
Boot sequence, embedded Linux system,
244–246
Buffer
Bus(es)
serial peripheral interface,
92,
92f
Bus Device Function (BDF),
74–75
C
-aligned data buffers,
491
Cairo Vector Graphics Library,
300
Cellular Telecommunications Industry Association (CTIA),
26
Certificate Authorities (CAs),
403–404
Character driver model, embedded Linux system,
250–256
Chassis-based router,
11f
Clocks
Coalescing, interrupting,
365
Commercialization, of embedded systems,
36
Common Object File Format (COFF),
174
Compare and Exchange (CMPXCHG),
198–199
Complementary metal oxide semiconductor (CMOS),
269
Complex Instructing Set Computing (CISC),
42
Complex programmable logic device (CPLD),
156–157
Complex reciprocal, using intrinsics,
328f
Configuration storage,
167
Connection management,
456
Consumer electronics,
Consumer Electronics Control (CEC),
297
Controller Area Network (CAN),
450
Copy protection, of embedded displays,
299
cpu_count() function,
431
Cyclic redundancy check (CRC),
364
D
Data transfer
DD WRT Router Firmware,
19f
tools and chipset features,
467–469
Joint Test Action Group (JTAG) adapters,
469
power-on self-test (POST) cards,
468–469
Debugging, embedded Linux system,
246–249
Decode stage to issue stage,
151
Delay locked look (DLL),
161
Device initialization,
161
Device interconnect—low performance,
89–96
Device interface—high performance,
73–80
Device wear and tear,
218
dev_queue_xmit function,
378
Digital Rights Management (DRM),
21,
299
Digital signal processing (DSP),
317
finite impulse response filter,
332–337
fixed-point and floating-point implementations,
322–323
implementation options,
325
microarchitecture considerations,
325
single instruction multiple data (SIMD),
324
microarchitecture and instructions,
324
Digital subscriber line access multiplexer (DSLAM),
Digital Visual Interface (DVI),
297
Directory descriptor entry,
132t
Direct-sequence spread spectrum (DSSS),
366
Disabled counters and statistics,
487
Discrete device expansion,
452
Discrete time signals,
318f
Display
Distributed Coordination Function (DCF),
367
Domain name system (DNS),
360,
415
Driver development, embedded Linux system,
249–262
Dual in-line modules (DIMM),
63
Dynamic host configuration protocol (DHCP),
360–361
E
E6x5C series package partitioning,
453f
E6XX QSeven module block diagram,
463f
Early initialization, platform boot sequence,
159–163
device initialization,
161
Edge packet throttle,
495
EFI Development Kit (EDK),
173
Embedded Application Binary Interface (EABI),
229
Embedded DisplayPort (eDP),
297–298
display query and timing,
299
video capture and encoding,
304–310
Embedded Linux system,
See also Linux
kernel
PCI memory allocation and mapping,
265–267
user space access from kernel,
262–263
synchronization/locking
cross-tool chain programs,
230t
Embedded systems
form factors,
range of,
system resources and features of,
user assumptions of,
Encapsulation and the four-layer internet model,
358f
Encryption and cryptography,
402–404
End of Interrupt (EOI) register,
128
Error messages and basic connectivity,
361
gigabit ethernet controller and features,
364–365
protocol description,
362
Example designs
Intel®Atom™ E6XX series platforms,
445–452
platform controller hub(s),
448–452
Executable and Linking Format (ELF),
229
Explicitly don’t vectorize loop,
329f
Extended debug ports (XDP),
469
Extended Host Controller Interface (EHCI),
86
Externally connected I/O devices,
51
F
Federal Communications Commission,
18
Federal Information Processing Standards Publications (FIPs),
18
Field-programmable gate array (FPGA),
17
Filesystem Hierarchy Standard (FHS),
239
Filters and fast Fourier transforms (FFTs),
324
Finite impulse response filter,
332–337
First in, first out (FIFO),
207–208
Fixed address memory mapped address,
44
Fixed-point implementations,
322–323
Floating-point implementations,
322–323
FP/SIMD execution cluster,
152
Frame(s)
check sequence (FCS),
364
cropping/transforming,
295f
Frequency-hopping spread spectrum (FHSS),
366
Full virtualization, systems with,
438
Future of embedded systems,
23–37
challenges and uncertainties,
34–36
G
Gnu
GRand Unified Bootloader (GRUB 2),
170–171
Graphic user interface (GUI),
393
graph setup, code flow for,
312f
H
hard_start_xmit function,
378
Hardware
application-specific,
17–18
support, from receive and transmit ring management,
365
High-bandwidth Digital Content Protection (HDCP),
299
High-Definition Multimedia Interface (HDMI),
297
High precision event timers (HPET),
58,
165
Host controller interface (HCI),
95,
204
I
Identification field,
356
IEEE Standard for Floating-Point Arithmetic (IEEE 754),
13
ifconfig
Infineon Bluetooth module,
95
Input sample waveform for benchmarks,
338f
In-Service Interrupt Request registers,
52–53
Instruction(s)
structure/procedure instructions,
119
Instruction Set Architecture (ISA),
42
Insulet Corporation
OmniPod diabetes therapy system,
33,
34f
Integer execution cluster,
152
Intel®
82546-gb dual port gigabit ethernet controller,
364f
Active Management Technology,
369
architecture
memory map at power-on,
162f
memory protection on,
131
Centrino® Ultimate-N 6300 network adapter,
368,
368f
E600 Series Q7 Module,
16f
Hyper-Threading Technology,
150
Integrated Performance Primitives,
331–332
Pentium® II Processor,
324
Pentium® Processor with MMX™ technology,
324
Performance Libraries,
325
Performance Primitives,
325
SIMD Extensions (Intel SSE),
324
SpeedStep® technology,
270,
281
Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3),
13
Processor E6xx Series device,
43–44,
63,
91,
156,
166,
172–173,
293,
300,
301f,
321,
322f
platform controller hub(s),
448–452
International Telecommunication Union (ITU),
304–305
Internet,
protocol array organization,
377f
Internet Assigned Numbers Authority (IANA),
355,
360
Internet control message protocol (ICMP),
361
Internet Engineering Task Force (IEFT),
213,
354
Internet Security Association and Key Management Protocol (ISAKMP),
410
Interprocessor interrupts (IPIs),
50–51
Interrupt acknowledgment cycle (INTA),
50
8259 Programmable Interrupt Controller,
48,
49f,
50
acknowledgement and priority schemes of,
47,
47f
Advanced Programmable Interrupt Controller,
48,
50,
55
Interrupt handling, embedded Linux system,
258–262,
261f
Interrupt In-Service (ISR),
49
Interrupt Mask Register (IMR),
50
Interrupt Request Register (IRR),
49
Interrupt service routines,
483
In-vehicle information systems,
IP address
dynamic assigning, to hosts,
360–361
mapping, to link-layer addresses,
360
J
Joint Test Action Group (JTAG) adapters,
469
K
L
Latin American and Caribbean Internet Addresses Registry (LACNIC),
355
LCD panel, embedded display connection to,
298f
Legacy operating system boot,
169–173
Licensing, operating system,
224–225
Licensing Verification Library,
391
Line-allocation policy,
490
capture loop, video for,
308f
timer and clock services in,
196–197
MMAP buffer mapping, video for,
306,
307f
kernel networking structures,
376–378
tools and monitor and control network interfaces and sockets,
372
storage file systems,
216
Linux Standard Base (LSB),
239
Local area networks (LANs),
361
Local interrupt controller (LAPIC),
153–154
Local interrupt sources,
51
Locally connected I/O devices,
50
Local variables, minimizing,
485
Logical processor organization, high-level depiction of,
432f
Low Voltage Differential Signal (LVDS),
297–298
M
Machine check exceptions,
122
Machine State Register (MSR),
158
Magnetic media hard drives,
156
Main Memory Address Range,
43–44
Media access control (MAC) protocol,
362
Media phone reference,
460f
Medium dependent interface (MDI),
364–365
IVI home screen user interface,
20f
Memory
alignment property and discarding assumed data dependences,
330f
management, embedded Linux system,
262–267
PCI memory allocation and mapping,
265–267
user space access from kernel,
262–263
directory descriptor entry,
132t
Memory Type Range Registers (MTRRs),
141
MESI (modified, exclusive, shared, invalid),
143–144
Message signal interrupts (MSI),
48,
258
Message Signal Interrupts eXtension (MSIx),
258
Metal oxide semiconductor field effect transistors (MOSFETs),
269
Mobile Industry Process Interface Alliance (MIPI),
298
Model View Controller (MVC),
459–460
Multi-card PXE download scenario,
177f
Multilevel secure (MLS),
18
Multi Media Card (MMC),
72,
155
Multiple input multiple output support (MIMO),
369
Multiply Accumulate operation (MAC),
323
asymmetric multiprocessing,
435–437
concepts and motivation,
436
impact on systems and software,
432–433
physical versus logical cores,
432
interprocess communication,
435
Multi-processor specification,
171
Mutual exclusion/synchronization,
197–202
N
Names and addresses, translating,
360
NAND
device representation,
71f
Native boot environments,
175
netif_receive_skb function,
378
address translation (NAT),
355
stack and device drivers,
214f
layering and network software,
349–350
node operation and network hardware,
350
application profiles,
370t
gigabit ethernet controller and features,
364–365
protocol description,
362
addresses, packets, and routes,
355–359
governance, IETF, and RFCs,
354–355
port numbers, byte ordering, and OS tools,
359–360
supporting protocols and services,
360–361
Wi-Fi adapter and features,
368–369
Network Time Protocol (NTP),
197
New Technology File System (NTFS),
216
Non-maskable interrupt (NMI),
57
Nonvolatile storage,
67–73
NAND
solid state drives,
72–73
Nonvolatile storage technologies, price trends for,
29f
Notification manager,
384
Nyquist sampling theorem,
318
O
OmniPod diabetes therapy system,
33,
34f
One Time Protect/Programmable (OTP) storage,
70
onRestoreInstanceState(),
389
onSaveInstanceState(),
389
Open Handset Alliance,
380
Open Host Controller Interface (OHCI),
85
Open Mobile Alliance (OMA),
457–458
Open NAND Flash Interface (OnFi),
71–72,
155
Operating system (OS)
buffer pool, avoiding,
486
mutual exclusion/synchronization,
197–202
organization of multiprocessor-aware,
433f
interrupt delivery to thread flow,
221f
processor interrupt handler,
222
round-robin scheduler with priority and preemption,
187–189,
188f
device wear and tear,
218
Operational registers,
87
Optimized hardware register use,
485–486
Organization for Economic Cooperation and Development (OECD)
Directorate for Science, Technology and Industry,
27
Orthogonal frequency-division multiplexing (OFDM),
366
P
Packet processing engine (PPE),
436–437
Path Maximum Transmission Unit (PMTU),
213
PCH power-on-timing diagram,
472f
PCI Express (PCIe),
12,
17
physical hierarchy of,
76f
Perceptual Evaluation of Speech Quality (PESQ) score,
339
assembly-language-critical functions,
484
avoiding OS buffer pool,
486
cache-optimizing loop,
484
disabled counters and statistics,
487
interrupt service routines,
483
minimizing local variables,
485
optimized hardware register use,
485–486
best complier for application,
480–481
compiler optimizations,
481
defined performance requirement,
478
premature code tuning avoidance,
479
slam-dunk optimization,
480
traffic generator and protocols evaluation,
493–494
avoidance of modulo/divide,
492
cache-aligned data buffers,
491
line-allocation policy,
490
prefetch instructions,
489
separate DRAM memory banks,
489–490
Peripheral Component Interconnect (PCI),
74–80,
448
configuration header,
77,
77f
device drivers, embedded Linux system,
256–258
memory allocation and mapping,
265–267
Plane mapping/blending,
294f
Platform and content security,
400t
security concepts and building blocks,
402–420
encryption and cryptography,
402–404
security architecture for IP (IPSec),
408–411
security attack categories,
411–416
Transport Layer Security (TLS),
404–407
two-factor authentication,
411
Platform architecture, of embedded systems
device interconnect—low performance,
89–96
device interface—high performance,
73–80
nonvolatile storage,
67–73
Platform boot sequence
configuration storage,
167
general-purpose input/output,
164
application processors initialization,
163
device initialization,
161
image storage boot considerations,
156t
legacy operating system boot,
169–173
multi-core and multi-processor boot,
153–154
unified extensible firmware interface,
173–176
Point Coordination Function (PCF),
367
Pointer
Portable Executable (PE),
174
performance, optimizing software for,
281–289
profile, of embedded systems,
270–271
Power-on self-test (POST) cards,
468–469
Power-on signal timing,
472f
Power supply timing diagram,
471f
interactive console interface,
283f
software and systems evaluation using,
284–289
Prefetch instructions,
489
Processor architecture, of embedded systems
acknowledging interrupts,
128
application binary interfaces (ABIs),
100,
107–111
memory
Product requirements document (PRD),
458
Profile-based approach, and bluetooth,
370
Programmable interrupt routing (PIR),
171
Programmable Interrupt Timer (PIT),
58,
165
Programmable logic controller (PLC),
21
Programming interface,
85–88
Protocol agnostic interface,
376
Public-key cryptography,
403
Public-key infrastructure (PKI),
404
Pulse Code Modulation (PCM),
95
Q
application development framework,
392–394
R
RAS CAS Delay (tRCD),
63–64
interrupt delivery to thread flow,
221f
processor interrupt handler,
222
Reduced Instruction Set Computing (RISC),
42
Registers
Reliability, of embedded systems,
18–19
Remote Interrupt Request Register (RIRR),
55
Request for Comments (RFC) process,
354–355
Resistive compensation (RCOMP),
161
Resource collision detection,
496
Root complex integrated end points,
448
Root file system (ROOTFS),
218
Round-robin scheduler with priority and preemption,
187–189,
188f
Row Address Strobe (RAS),
63–64
S
Safe instruction recognition,
152
Safety Integrity Level (SIL),
18
sched_set_affinity(),
435
Scheduling, operating system,
186–191
round-robin scheduler with priority and preemption,
187–189,
188f
Secure Digital I/O (SDIO),
155,
168
architecture for IP (IPSec),
408–411
Serial Advanced Technology Attachment (SATA),
72–73,
168,
202
Serial Digital Video Out (SDVO),
297–299
Serial Presence Detect (SPD),
63
Signal floating-point exception (SIGFPE),
104
Simple firmware interface,
171
Simple vector multiply loop,
329f
Single-board computers (SBCs),
15
Single instruction multiple data (SIMD),
324
microarchitecture and instructions,
13,
105,
324
Single-key cryptography,
402
Slam-dunk optimization,
480
Small outline dual in-line memory module (SODIMM),
162
Social engineering and phishing,
416
startActivityForResult(),
387
Start of Frame field,
363
Startup Inter Processor Interrupt (SIPI),
154
device wear and tear,
218
Strong un-cacheable memory,
141
Structure/procedure instructions,
119
Supervisory control and data acquisition (SCADA),
11,
21
Supplemental Streaming SIMD Extensions 3 (SSSE3),
105,
121,
323
Switched ethernet LAN,
362f
Symmetric key cryptography,
410
interprocess communication,
435
Synchronization/locking, embedded Linux system
System bus interface,
145
System resources,
T
Task State Segment (TSS),
126
addresses, packets, and routes,
355–359
governance, IETF, and RFCs,
354–355
port numbers, byte ordering, and OS tools,
359–360
supporting protocols and services,
360–361
Telephony,
Thermal design power (TDP), ,
272
Thermal sensor interrupts,
51
Thread Local Storage (TLS),
100–101
Throughput-oriented applications,
428
Tightly coupled memory (TCM),
138
configuration of,
57,
58f
PIT registers—in/out space,
59t
Total device power (TDP),
14
Touchscreen interface chip,
459
Traffic generator and protocols evaluation,
493–494
Translation look-aside buffers (TLBs),
110
Transmission control protocol (TCP),
213,
352
Transmit descriptor ring,
211f
Transport Layer Security (TLS),
404–407
Trusted Platform Module (TPM),
421
Two-factor authentication,
411
U
Unified extensible firmware interface (UEFI),
173–176
Development Kit (UDK2010),
173
Universal asynchronous receiver/transmitter (UART),
93–96,
166
Universal Host Controller Interface (UHCI),
85,
88
transaction phases of
Universal Host Controller Interface,
88
unregister_netdevice,
378
User interface elements,
384
V
Vectorized assuming no data dependency,
330f
Vice codec encode benchmarks,
338t
VideoAccelerationAPI,
303
history and motivation,
437
methods for platform
Virtual machine monitor, basic organization of,
438f
Volatile memory technologies,
61–67
branch and control flow instructions in,
118
mutual exclusion/synchronization,
199
task control block in,
184
timer and clock services in,
196–197
W
Watchdog timer (WDT),
57,
See also Timers
Wi-Fi adapter and features,
368–369
Wired equivalent privacy (WEP),
367–368
Write combining memory,
141
Write protected memory,
142
Write-through memory,
141
Write-through policy,
490
X
x87 Floating-Point Unit (FPU),
104
nano-kernel approach,
441f
Y
Yet Another Flash File System (YAFFS2),
217–218
Z