Embedded hardware and software design tends to be more difficult because of time and resource constraints. Real-time operating systems are the norm. Wayne Wolf attempts to address this space and does a great job.
The book starts with conventional computer architectures and investigates real-time embedded considerations along the way moving into multiple process and processor environments. Of course, this means a close examination of scheduling techniques and resource allocation with a heavy emphasis on embedded applications. This includes coverage of interconnects such as time triggered networks like Flexray that targets vehicle control systems.
Wolf presents architectures like Tensilica's Xtensa along with analysis and performance details to highlight architectural and design decisions that developers have or will need to consider in real world applications. He covers a range of issues from performance analysis to programming languages. There is even a short section on UML (Universal Modeling Language) that is being employed more often in embedded and safety critical applications.
The book wraps up with a chapter on hardware and software co-design. This aspect of embedded design is becoming more important as it becomes easier to employ different levels of hardware customization within an embedded design cycle. Partitioning, co-synthesis and co-simulation are critical to success in this approach and Wolf does a good job of providing an overview of the process and issues.
Developers getting into embedded design will find this book invaluable. Experienced developers wanting to check out the latest technology and methodologies will find the book useful as well. Keeping abreast of this information is not an easy task, so it helps to have the insight that writers like Wolf provide.