For novel ideas about building embedded systems (both hardware and firmware), join the 40,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.

By Jack Ganssle

After 500,000 Words

Twelve years of Catholic education taught me to hate writing. The nuns and Jesuits were very demanding and tolerated neither spelling errors nor grammatical mistakes. Getting a five page paper done seemed to require Herculean longhand efforts. My poor mother - an English major - typed a lot of these papers for her five kids on an ancient manual Olivetti.

As an engineer I found that it was happily easy to get buried in a project and respond to non-techies with grunts and scribbled schematics. They'd go away pretty quickly. But over time I took more and more pleasure in getting the comments right, with enough narrative to ensure one could completely understand the software without referencing the code itself. Annotating schematics was even more interesting as space limitations meant one had to adopt an astonishingly concise style while conveying lots of information. Then I learned that one very effective way to elicit a project's requirements was to write the user's manual first. and that a truly well-written manual was a joy the customer and a source of pride to the author. So it was a natural progression to learning to love the art of writing in other forms as well.

I cranked out some technical articles for a few publications, including two for Embedded Systems Programming, this magazine's original name, working with the rag's most colorful editor, Tyler Sperry. Then he called and asked for a monthly column. The first installation of Breakpoints appeared June, 1990, twenty years ago this month.

Those two decades have passed at a frightening rate. Then: mid thirties, a baby and one on the way, building a business, new house, and always a crisis at hand. Now I find myself with a very different perspective: genetically irrelevant, watching a new generation of parents starting out, enjoying friendships forged over many decades, and less preoccupied with the exigencies that always turn out to be so unimportant once a little time passes. Those babies are grown, the business sold long ago, and crises rare.

Everything changes.

And so much has changed in this industry. I don't have a copy of the June, 1990 issue of this magazine, but the very first ESP issued about a year earlier had, by rough count, ads from 60 different companies. Only a dozen or so of those outfits are still around, or selling the same sorts of products. Do you old-timers remember Ready Systems? Huntsville Microsystems? Softaid, AD 2500, Whitesmiths? All gone, sold, their products largely forgotten. Strangely, Wind River didn't advertise in that issue. But they sure bought a lot of others who did during the stock bubble of the early 2000s. In one acquisition spree ISI, after buying Diab and SDS, was in turn purchased by Wind River, all in a matter of weeks. One friend worked for all of those companies without ever changing jobs. Intel, which now owns Wind River, had a full page ad for an 8051 in-circuit emulator.

Other companies have been born in the intervening decades. Some with the biggest ads in recent ESDs didn't exist in 1990, like Express Logic and plugcomputer (Marvell).

Electronics is the home of the fastest rate of change of about any discipline, so it's not surprising that so much we take for granted today didn't exist two decades ago. Something like 70% of all 32 bit processors are ARMs, yet that processor didn't exist as we know it. The market trends for CPUs are completely different now, too. Then, there were a plethora of different architectures, with more released on what seemed a daily basis. Today, the 32 bit trend is unifying behind the ARM line, and I suspect that as time moves on ARM's market share in high performance embedded systems will be indistinguishable from Intel's on the desktop.

What's even more remarkable is the 8051-ication of the ARM. TI/Luminary, ST, and others have taken the MCU philosophy of massive part proliferation to the 32 bit world. It's ironic that the latest generation of these parts in their Cortex M0 incarnation sport about the same number of instructions as the very first microprocessor, the 8008. Few would have predicted that a 32 bit MCU would cost the $0.65 NXP charges for their LPC1100.

Even some technology words have disappeared. "Submicron," for instance, was the almost inconceivable realm where transistor geometries were smaller than, gasp, one micron. Today 0.045 micron is not uncommon, and 0.022 is on the horizon. Back then I was astonished at the notion of features just a single micron long, and remain even more so now with gate oxide thicknesses just five atoms thick. What an amazing world we engineers have built!

There was no Linux and any variant of Unix was only rarely found in an embedded system. Windows CE didn't exist. GUIs of a sort were sometimes found in the embedded world, powered by home-grown libraries or a few commercial products. But a high-end embedded CPU then was a fast (like 20 MHz) 16 bitter so processor cycles were in short supply.


Bill Vaughn noted: "The groundhog is like most other prophets: it delivers is predictions and then disappears." Well, in January 1991 I made some predictions in this column. Let's see how they fared.

I thought C++ would win. Wrong, at least so far. Its market share in firmware struggles along at about 30%. This is still, unfortunately, the world of C. I like C - it's fun, it's expressive, and one can do anything with it. Which is the problem. C worked well when programs were small, but it scales poorly as line counts explode.

The siren call of reuse seduced me, and I wrote that we'd find vendors selling chunks of code just as they push ICs. Databooks would list lots of firmware modules, completely spec'ed out. We'd just string them together and build the system out of components. Strike two. And what the heck is a databook? When was the last time you saw one of those?

I predicted that IDEs would track function names and tell us what their parameters are. So there's a hit as many development environments provide plenty of information about functions, variables and program structure. But I thought that these new help resources would aid in managing a plethora of files whose function was hidden by the 8 character file name limitation of DOS and Windows, never anticipating that we'd even be able to embed spaces in names today.

It's hard to believe, but I figured management would realize how expensive we are and backstop us with lower-paid paraprogrammers and clerical help to offload all non-engineering functions from us. And I thought productivity-killing cubicles would disappear.

Perhaps the ultimate irony is that I never imagined that in-circuit emulators would nearly fade away, replaced by BDMs and JTAG. At the time my company made ICEs. Remember Keuffel and Esser, the slide rule company? In 1967 they predicted all sorts of fantastic changes, like domed cities, to come over the next century. They missed the demise of the slide rule just a few years later.

Predictions are hard. Even the Psychic Friends Network didn't see their 1998 bankruptcy in the tea leaves.

Lessons Learned

To me the most interesting and compelling aspect of any endeavor is learning. After nearly a half-century of sailing, for instance, I still learn new aspects of the sport every year. In electronics and firmware things change at a much more dizzying rate than in the ancient world of rope and sails. Not a day goes by that one doesn't pick up something new.

The same goes for writing. Grammar and style are important so I've learned to keep English reference books at hand. And I've learned that the Chicago Manual of Style is not only useful - it's a pretty darn interesting read in its own right, at least for those who love language.

I've learned that no matter how carefully one prunes all hint of politics and religion from a column, at times a vocal few will get outraged for a perceived right/left wing bias. I've been accused of being a miserable conservative shill and a raging left-wing socialist. But as America's political dialog has been getting more charged and less reasoned, and as the Internet has eroded all sense of manners, responses from ESD's readers are nearly always well-thought-out and polite.

You are getting more diverse. I don't know the magazine's demographics, but email increasingly comes from areas of the world where engineering was nearly unknown twenty years ago. Occasionally that correspondence is framed more aggressively than one expects in the West: "Required urgently: schematics and source code to build a system that." What I haven't learned, but want to, is if this is a result of some intriguing difference in our cultures or perhaps a different take on etiquette.

Some of that diversity includes a wider range of languages; English is often not an ESD reader's native tongue. If I were wiser I'd adopt that essential fact and stick to simpler sentence structure and mostly monosyllabic words. If the goal is to communicate it makes sense to subset the language to one that is comprehensible to the entire readership. Rather like applying MISRA to C or SPARK to Ada.

But that's no fun. English is marvelously rich in expressive words and constructs. It's delightful to surf the language.

I've learned the peril of idioms, which will trip up a conversation even between an American and a Englishman. Add those to a publication read by folks from a hundred more distant cultures and you're sure to "come a cropper." For instance, I recently received this email:

Dear Professor, Recently, I have read your article. The last section of the article: "At the risk of sounding like a new-age romantic, someone working in aroma therapy rather than pushing bits around, we've got to learn to deal with human nature in the design process. Most managers would trade their firstborn for an army of Vulcan programmers, but until the Vulcan economy collapses ("emotionless programmer, will work for peanuts and logical discourse") we'll have to find ways to efficiently use humans, with all of their limitations." I have the following questions: "Working in aroma therapy rather than pushing bits around"--what do the both mean, and what the writer want to express? "Trade their firstborn for an army of Vulcan programmers" --Here I think "firstborn" maybe his (her) employees, but what Vulcan programmers stand for? I have little knowledge about Roman myth. "Vulcan economy collapses"-- Vulcan economy stands for? "Work for peanuts and logical discourse" -- work for peanuts and logical discourse? I can't find any clue of a relation between them, so I really don't know what the sentence mean. I have searched a lot of Web pages about these, but failed to get considerable answers. sincerely long for and thank you for your help!

I've learned how smart - and at times funny - ESD readers can be. Over the two decades of writing for this magazine I've exchanged over 100,000 emails with you, some of whom have become good friends. My email inbox is always swamped so it takes days for me to reply, but the questions, comments and critiques are so perceptive and interesting I try to respond to every one.

This discourse with you, gentle readers, is the best part of writing a column. As Dean Martin used to say: keep those cards and letters coming! And thanks for the dialog.

Published May 4, 2009