Thinking Inside the Box.
Intermediate Level Users.
This book introduces embedded systems to C and C++ programmers.  Topics include testing memory devices, writing and erasing flashmemory, verifying nonvolatile memory contents, controlling on-chipperipherals, device driver design and implementation, optimising embedded code for size and speed, and making the most of C++ without a performance penalty.  The book explains the structure of real-time operating systems, from the inside out.