This is an ambitious book that sadly misses the mark by some way. It is ambitious in that it appears to have a good coverage of different sorts of embedded technology, but this comes at the price of being overwhelming, superficial and too large.
It is split into two main sections. The first is an overview of embedded software development. The second (spanning pages 128-501, i.e. about 75% of the book) is a series of 'examples' of embedded systems, showcasing a broad range of technologies and problem domains.
The first section sets off to a dry and somewhat slow start but doesn't really dig in deep enough. I think this should be the most valuable part of the book (and could almost stand alone from the later example chapters). It doesn't, presumably relying on the second section to spell out a lot detail. The second section doesn't.
The example projects miss the mark somewhat and in fairness are sold too strongly - they are hardly professional-quality applications. Their presentation requires intense scrutiny to glean much information and the examples fail to highlight many of the particular problems and specific approaches to embedded programming.
Although the book skirts through many different environments, I was left wondering where the VxWorks or pSOS examples were. In fact a number of these examples are really just small desktop apps that are 'embedded' by running an embedded version of NT/XP.
The typesetting of the book is heavy and not clean to the eye. The code has been laid out without any consideration to the printed page. A little reformatting would have aided clarity greatly. The book's organisation is peculiar in places.
The authors often cave into industry hype and trot out a lot of dogma without explaining or thinking about what they're writing. They have a particular predilection for Java in this respect.
There is a supplied CD, containing material for both Linux and Windows, which is a nice touch. As with most such cover CDs it only appears to contain freely available material - Forte for Java, Java2 JDK 1.4, J2ME and RTLinux. It does contain the book's source code, which is more useful.
However, this book consistently doesn't address 'real' embedded issues. We don't need the incomprehensible source code for a naff MP3 player - the target audience should be able to read API docs and work out how to build one themselves. What's needed are descriptions of the real life balancing of performance issues, some examples of the difficulty of debugging in embedded environments, more on talking to real physical devices and something on the real concerns of working with RT OSes.
Overall, I wasn't that impressed. The book scratches many surfaces and presents a number of examples that don't really provide any usable, digestible keys into embedded development. It is reasonably expensive and reasonably large and would benefit from being a smaller, more targeted book, removing unnecessary waffle and duplication.OS and GUI Programming