Introduction to Embedded Systems, Second Edition: A Cyber-Physical Systems Approach (Mit Press)
The most visible use of computers and software is processing information for human consumption. The vast majority of computers in use, however, are much less visible. They run the engine, brakes, seatbelts, airbag, and audio system in your car. They digitally encode your voice and construct a radio signal to send it from your cell phone to a base station. They command robots on a factory floor, power generation in a power plant, processes in a chemical plant, and traffic lights in a city. These less visible computers are called embedded systems, and the software they run is called embedded software. The principal challenges in designing and analyzing embedded systems stem from their interaction with physical processes. This book takes a cyber-physical approach to embedded systems, introducing the engineering concepts underlying embedded systems as a technology and as a subject of study. The focus is on modeling, design, and analysis of cyber-physical systems, which integrate computation, networking, and physical processes.
The second edition offers two new chapters, several new exercises, and other improvements. The book can be used as a textbook at the advanced undergraduate or introductory graduate level and as a professional reference for practicing engineers and computer scientists. Readers should have some familiarity with machine structures, computer programming, basic discrete mathematics and algorithms, and signals and systems.
Why Read This Book
You will learn a principled, model-driven way to design and reason about embedded systems that interact with the physical world, with a strong focus on time, determinism, and correctness. The book blends theory and practical case studies so you can move from formal models to real firmware and understand the trade-offs that matter for safety-critical and IoT systems.
Who Will Benefit
Engineers and students with some programming and math background who want a rigorous foundation in cyber-physical systems design, real-time behavior, and the hardware–software interface for embedded/IoT products.
Level: Intermediate — Prerequisites: Comfortable programming in C (or similar), basic discrete math and logic, and introductory calculus/differential equations; familiarity with basic computer architecture and signals is helpful.
Key Takeaways
- Model embedded systems as cyber-physical systems using discrete, continuous, and hybrid formalisms
- Analyze and reason about time, concurrency, and determinism in real-time embedded software
- Design software–hardware interfaces and sensor/actuator integration with safety and correctness in mind
- Apply verification, simulation, and testing approaches to validate timing and functional behavior
- Translate models into implementable firmware and evaluate trade-offs for resource-constrained platforms
Topics Covered
- Introduction to Embedded and Cyber-Physical Systems
- Models of Computation for Embedded Systems
- Time, Concurrency, and Determinism
- Discrete and Continuous Dynamics
- Hybrid Systems and Interaction with the Physical World
- Real-Time Constraints, Scheduling, and Resource Management
- Hardware–Software Interface: Sensors, Actuators, and I/O
- Design Patterns for Embedded Software and Real-Time Kernels
- Networked and Distributed Embedded Systems (IoT)
- Verification, Simulation, and Testing of Cyber-Physical Systems
- Case Studies and System-Level Design Examples
- Dependability, Fault Tolerance, and Safety Considerations
Languages, Platforms & Tools
How It Compares
More model-driven and CPS-focused than Jonathan Valvano's hands-on microcontroller guides, and complements Jane W.S. Liu's Real-Time Systems (which focuses on scheduling theory) by emphasizing modeling, semantics, and interaction with physical processes.













