Computers as Components: Principles of Embedded Computer Design

Aug. 10, 2005
by Wayne Wolf

It is not always easy to tell a book by its cover, and Computers as Components: Principles of Embedded Computer Design by Wayne Wolf fits into this category. The title alludes to a component-based design approach, therefore I was disappointed that the book really does not address this approach. On the other hand, it does to a very good job of covering the principles of embedded design, so just take the main title with a grain of salt.

The book is really an introduction to microcontroller architecture and related software support, such as a real-time operating system (RTOS). It actually starts with a UML (unified modeling language) description of various embedded systems. Like the rest of the book, it gets you started but does not overwhelm with a full blown treatise of the subject. Wolf explains just enough UML to make the examples understandable. Likewise, each chapter is a relatively standalone feature, so you can skip around based on your experience. Although UML, assembler, and C are used throughout the book to varying degrees, you do not need to become an expert on any to make use of the information being presented.

Overall chapter layout should be familiar to anyone that has worked with embedded systems. It starts with a hardware architecture overview using the ARM as a general-purpose processor example and the SHARC as a digital-signal processor (DSP) example. The next chapter delves into details like supervisor mode, memory management units, and even touches on power consumption. At this point, the chapters are rounded out with one or more design examples that are covered in some detail, including design criteria and specification.

Software eventually crops up with discussions on the basics like assembler, linker, and compiler operation. The book covers some basic compiler optimization techniques and also addresses program validation and testing. The chapter on operating systems is very good and includes coverage of scheduling techniques, such as rate-monotonic scheduling and earliest-deadline-first, that tend to be more prominent in embedded applications than in conventional server or desktop operating environments.

The chapter on networking is similar to the others in that the material is introductory in nature, but leaving out the more advanced material could give readers the wrong impression of the current state of affairs. For example, the CAN discussion actually addresses the CAN 1.x standard with 11-bit identifiers while most implementations now employ CAN 2.0 that supports 29-bit identifiers in addition to being backward compatible. It is a relatively minor oversight ,especially when considering the target audience. It’s odd that Myrinet is included while things like RapidIO and InfiniBand are left out.

The book wraps up with a discussion of system design and testing techniques. This includes a section on quality assurance. This chapter tends to be the most superficial. However, it does bring home some key facts that new developers should be aware of, such as the dramatic increase of cost for fixing a bug the longer it exists. Any embedded developer cringes at the thought of trying to fix a bug in the field.

Wayne Wolf has put together a good product for budding developers (read: college students). It is also a great hardware and system overview for programmers that may soon be immersed embedded system design.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!