About the Author xxxiii
Foreword xxxv
Preface xlix
Acknowledgment lix
About the Companion Website lxi
Part 1 Hardware and Software Infrastructure
1 The Hardware Side -- Part 1: An Introduction 1
2 The Hardware Side -- Part 2: Combinational Logic -- A Practical View 55
3 The Hardware Side -- Part 3: Storage Elements and Finite-State Machines -- A Practical View 111
4 Memories and the Memory Subsystem 165
5 An Introduction to Software Modeling 215
6 The Software Side -- Part 1: The C Program 243
7 The Software Side -- Part 2: Pointers and Functions 279
Part 2 Developing the Foundation
8 Safety, Security, Reliability, and Robust Design 331
9 Embedded Systems Design and Development -- Hardware-Software Co-Design 403
10 Hardware Test and Debug 507
Part 3 Doing the Work
11 Real-Time Kernels and Operating Systems 541
12 Tasks and Task Management 573
13 Deadlocks 625
14 Performance Analysis and Optimization 645
Part 4 Developing the Foundation
15 Working Outside of the Processor I: A Model of Interprocess Communication 715
16 Working Outside of the Processor I: Refining the Model of Interprocess Communication 733
17 Working Outside of the Processor II: Interfacing to Local Devices 789
18 Working Outside of the Processor III: Interfacing to Remote Devices 837
19 Programmable Logic Devices 869
20 Practical Considerations Signal Behavior in the Real World -- Part 1 -- Noise and Crosstalk 893
21 Practical Considerations Signal Behavior in the Real World -- Part 2 -- High-Speed Signaling 909
A Verilog Overview: The Verilog Hardware Description Language 949
Further Reading 981
Index 991