Tweet Follow @jack_ganssle

Embedded Muse 77 Copyright 2002 TGG October 25, 2002

You may redistribute this newsletter for noncommercial purposes. For commercial use contact

EDITOR: Jack Ganssle,

- Editor's Notes
- Embedded Seminars
- Books!
- Jobs
- Thought for the Week
- About The Embedded Muse

Editor's Notes

This week I looked over an embedded product that absolutely, positively, must run reliably. A few diagnostics were included to insure the hardware worked before starting up the main-line code. As usual, there was a RAM test. As usual, it was totally flawed and was unlikely to pick up any real problems.

I've written about RAM testing in other places so won't repeat my thoughts here. However, I've put a report about it on-line at Check it out if you're doing RAM tests.

There's a new really cool product out, targeted specifically at people working with scopes and logic analyzers. MicroOptical's $995 SV-3 is a tiny display that hooks onto your glasses (or ones they supply for you lucky non-myopic people). It projects the scope's display onto the lens. So now you can look at the circuit and the probe, yet still see the complete scope display. Caffeinated hands, shuddering slightly, won't be a problem since you can still look where the probe is while viewing the data.

I haven't used this thing but it sure seems like a great idea. Other variants listed on their site project any VGA output on the glasses. The form factor is small, though from the pictures still appears a bit intrusive.

Now all we need is ubiquitous wireless Internet and a tiny input device. I like the idea of walking around with all of the world's knowledge instantly available. Shades of Robocop...

See it at, and if anyone has used this, let me know how it worked out.

Embedded Seminars

I'll be presenting my Better Firmware Faster seminar in Irvine, CA on December 4 and Dallas, TX on December 6. See for more information. This is the only non-vendor class around that shows practical, hard-hitting ways to get your products out much faster with fewer bugs. The crummy economy is putting pressure on all developers- come and learn the tricks you need to be more efficient.

I often do this seminar on-site, for companies with ten or more embedded folks who'd like to learn more efficient ways to build firmware. See


Jean Labrosse has a new revision of his MicroC/OS-II, The Real Time Kernel available. I've long been a fan of Jean's, of the uC/OS product itself, and his books.

This version is more than a simple upgrade; it appears to be a total rewrite. Weighing in at 600 pages it's a complete description of the RTOS, and about how to use it in your application.

The RTOS itself now has file system and GUI support. It's certified to DO-178B, and an upgrade to DO-178A is coming. It has been ported to a vast number of microprocessors. Best of all, to me, is the code is written in an eminently clear and consistent fashion. Want to teach people how to write clean code? Have them read the source to uC/OS.

The book no longer includes source listings of the RTOS; those are on the companion CD. Instead, Jean has added chapters and more material that gives a very easy-to-understand description of what is going on.

There are many more illustrations than in the previous volume. I like the fact that he has annotated the listings (listings that demonstrate how to use the RTOS) with numbers that refer to descriptions in the text. That speeds understanding of the concepts a lot.

Highly recommended. It's available on or from Jean's site at

Ed Sutter's Firmware Demystified is a great introduction to the process of building real firmware. It gives a start-to-finish description of how to make code that will really run in an embedded system.

Ed covers the typically-embedded issues like startup code, with an entire chapter discussing how to create a startup file, what should be in it, with code. He goes on to show the use of Flash, including dealing with downloadable firmware. A complete Flash file system is included. Network connectivity is here, from the Internet protocols to Xmodem.

All of this is described in the context of a Micromonitor that is included on the companion disk. I think one of the coolest parts of this is that the Micromonitor has a command line interface that supports scripting. When I was a debugger vendor, and today as a debugger user, I've always relied on simple scripts to exercise hardware, run software tests, and the like. As a Unix user I hardly ever have to write a program to do stuff; a script is almost always adequate and is a lot faster to implement than code. Ed's Micromonitor supports more advanced scripting than we often get in a debugger (though less than in Unix). Use these ideas in your embedded system and you'll get command line access to low level product capabilities. Extend his code a bit, and you can add scripting commands unique to your target environment. Like, add something to read and display your A/D in engineering units.

Also recommended, get it on Give this to the newbies, for sure, and get your boss to read the book, to give him a sense of what it is we do.


Thought for the Week

Documentation is like sex: When it's good it's very, very good; when it's bad it's better than nothing.