Curtis wanted to create a fundamental framework that readers could utilize in embedded projects that needed a basic operating system but did not require a more powerful commercial or open-source operating system. The accompanying CD includes sample C source code that is presented in the book. Overall, he succeeds.
Those that are relatively new to embedded programming will benefit most from this book. It starts with a chapter on the basics, including things such as number systems and data structures that many will have already encountered. It is the state-machine and operating-system sections where things finally get interesting. Curtis takes a look at a few state-machine implementations and includes sufficient examples for any programmer to get a good idea of how they work. As with the multitasking section, this section could benefit by including some of the other techniques available, such as using pointers as state variables, but it would have made the book a bit longer.
The system-level design chapter is interesting, but I would have traded the space for more details on real-time multitasking support or even a discussion of cooperative multitasking. Still, for those new to system design, this presentation will provide the introduction necessary to address overall system design that uses a multitasking operating system.
The ending chapter on implementation and testing puts the introductory information to work. The C source code tends to make things easier to understand, but it also prevents a discussion of microcontroller-specific issues. That was really the only thing I found deficient with the book, especially since it was part of the title. Still, the presentation is definitely applicable to microcontrollers, albeit on a high level.
If you're interested in embedded microcontrollers, you might also like these books: