The title should really read Embedded Software: My Works. It is an edited version of articles that Colin Walls wrote. As individual chapters, the contents are quite good, but the book as a whole is somewhat disjoint and there are a few things missing. That’s not surprising given its heritage, so forget about the flow and check out the useful tidbits.
It covers embedded software tools and topics ranging from programming languages like UML, C, and C++ to real-time operating systems and networking. The articles tend to be a mix of history and current technology. They are all technically accurate, but there are often major gaps—such as the discussion of NVRAM that does not adequately address NAND and NOR flash.
Still, there’s some very good coverage in many areas like the C chapter that also covers MISRA C with its 127 rules (not all of which are examined) and the OSEK/VDX architecture discussion in the operating systems chapter. Likewise, it covers DHCP in the networking chapter, but it does not mention protocols like BOOTP that can be very useful in an embedded environment.
This book is best for someone that has at least a basic embedded-programming background and is looking for some insights into tools and techniques. Mr. Walls introduces topics like XML, Java, and UML, but it will be up to the reader to find more definitive texts on the subjects. Although he does well at placing things in context, it would have been better if he at least listed the alternatives that are appropriate even if they are not discussed in detail.
There are enough tips, tricks, and observations in the book to make it worthwhile for most developers. Covering such as wide range of embedded topics in a single book is rather challenging, but overall the book rises to the challenge with pretty good results.
If you're interested in embedded software, you might also like these books: