An
Embedded Library
Copyright 1996,
Jack G. Ganssle
Abstract
More books, reviews,
and comments.
Some time ago
a very new acquaintance commented "My, what an eclectic lifestyle you
lead!" Apparently he was quite taken aback to find
that our living room wasn't centered around a TV; indeed, there was nary a
set to be seen. (In truth, it was hidden in another room).
I've often thought
about this conversation. It crystallized my concern that we're turning into
a nation of video-aholics, abandoning the
joys of reading and conversation for meaningless brain candy.
Throw out your
TV and replace the cabinets of that "entertainment center" with
a wall of bookshelves. Tune into the infinite world of
literature and knowledge that is still best conveyed by reading.
After broaching
this subject in my July 6th column, and listing several great books about
embedded systems, I was immediately swamped with
email from EDN readers, most asking for more references. Clearly this magazine's
readership is a cut above average -- I can't imagine
anyone slogging through a technical book while listening to Cosby in the background.
I'll start the
list off with a book that has nothing, and in some ways everything, to do
with embedded systems. The Design of Everyday
Things, by Donald A. Norman (1988, Doubleday, NY, NY ISBN 0-385-26774-6) is
a fascinating study of the usability of products. Everything
we design will be used by someone, yet too little thought goes into how our
customers interact with our creations. Highly recommended.
A similar work
is Invention and Evolution, by Michael French (1988, Cambridge University
Press, Cambridge, ISBN 0-521-46911-2). It's a
text only an engineer could enjoy; one who is fascinated by all aspects of
technology. A central theme is beauty in design, something we
see in the pictures in this magazine. How many of these ads are full color
representations of a PC board? Many designers hang plots of IC
layouts as works of art in their offices. The casual beauty of our creations
is something to take pride in, and to enhance where possible.
Hardware Design
Collect data
books. All of the IC vendors offer wonderful libraries, mostly free for the
asking. Be reasonable, though - ask for only the
books you'll likely use, and try not to accumulate duplicates. I can't imagine
how companies can afford to give away the vast amounts of
material they do, and am sure this will change. Enjoy it while you can. Spend
time looking through these on your lunch hour. Many are
treasures of application notes and design techniques.
Need an introductory
text to logic design? It's hard to beat Modern TTL Circuits Manual, by R.
M. Marston (1994, Butterworth-Heinemann,
Oxford, ISBN 0-7506-2092-7). Though some of the material is dated (when was
the last time you used a 74LS90?), the basics all hold true.
Old-timers should skip this one, but newbies will learn a lot.
Modern Logic
Design, by David Green (1986, Addison-Wesley, NY, NY ISBN 0-201-14541-3) is
older but more up-to-date. It covers subjects
even the experienced designer works with every day: PLDs, various kinds of
synthesis, Reed-Muller, and digital filters. Read it, work the
problems, and you'll be an expert.
Designing with
Flash Memory, by Brian Dipert and Markus Levy (1993, Annabooks, San Diego,
CA ISBN 0-929392-17-5) saved my bacon when I
needed to learn how to use (and more important, talk knowledgeably about)
flash memory. Anyone designing with flash must read this book.
It's a nasty
fact, but the world isn't entirely digital. I'm anxiously waiting for our
sensors to work on a quantum level to eliminate all
analog from my life, but in the meantime I study Bob Pease's Troubleshooting
Analog Circuits (1991, Butterworth-Heinemann, Oxford, ISBN
0-7506-9499-8). Skip it if you don't know what an op amp is. Read it if your
amplifiers oscillate or otherwise behaving strangely. Late
update: there does seem to be some truth to the rumor that there's something
between a one and a zero. Stay tuned.
The Art of Electronics,
by Paul Horowitz and Winfield Hill (1980, Cambridge University Press, Cambridge,
ISBN 0-521-37095-7). A big book,
encyclopedic in scope, it's one of the few works I refer to constantly for
ideas and insight. A highly recommended reference work.
How much current
can you push through stranded 22 AWG wire? What's the formula for capacitive
reactance? I always turn to my trusty Radio
Amateur's Handbook for these answers. Get it from The American Radio Relay
League, Newington, CT. You'll have to call them or visit your
local radio store for a copy. Though it's published every year, I'm still
using a 1970 edition that has an amusing (and vastly
entertaining) amount of vacuum tube information.
IEEE 1149.1-1990
- The JTAG Standard - If your designs aren't using JTAG now, they surely will
in the future. Prepare yourself. I hated
spending $50 for this thin document, though. You can get most of the useful
info from various vendor's data books and magazine articles.
Though a desktop
PC has little to do with this industry, a lot of embedded systems use PC designs,
being based on 188s and similar CPUs.
The bible of all references to PC hardware is The Indispensable PC Hardware
Book, by Hans-Peter Messer (1993, Addison-Wesley, NY, NY ISBN
0-201-87697-3). Everything is here: interrupt structures, cache organization,
EISA/Microchannel/PCI, mouse operation, and displays. It's a
boring read but a fantastic reference.
After mastering
protected mode I felt I had a pretty good understanding of my desktop computer.
Then Intel released the Pentium, and I
felt awfully confused about things like 4 way set associative caches, bus
snarfing (no, that's not a typo), and other words bandied about
by the techno-literate. Pentium Processor System Architecture, by Don Anderson
and Tom Shanley (1995, Addison-Wesley, NY, NY ISBN
0-201-40992-5) cleared up most of the fog.
At the other
end of the spectrum, browse Choosing and Using 4 bit Microcontrollers by Philip
McDowell (Woodhead Publishing LTD, Abington,
England, ISBN 0-8247-9153-3). You'll get a hint of the cool things possible
with a minimal CPU.
Software Engineering
Buy both of Jean
Labrosse's books. His Embedded Systems Building Blocks (1995, R&D Publications,
Lawrence KS, ISBN 0-13-359779-2) is
crammed full of C code for driving keyboards, timers, analog, and displays.
Each chapter ends with worthwhile references.
uC/OS The Real
Time Kernel is Labrosse's first book (1992, R&D Publications, Lawrence
KS, ISBN 0-13-031352-1). It's not the sort of thing
you'd read from cover to cover, being a description of his RTOS (available
on disk). It is a good introduction to using an RTOS, and even
includes timing of each routine on the 80188/186 processor.
Optimizing C
With Assembly Code, by Peter Gulutzan and Trudy Pelzer (1995 R&D Publications,
Lawrence, KS, ISBN 0-13-234576-5) is a neat
book for designers working with any x86 variant, like the 188/186. It even
comes with a program that will find performance problems in
your assembly code.
Books on algorithms
all seem to cover the same tired old ground. One exception is Practical Algorithms
for Programmers by Andrew Binstock
and John Rex (1995, Addison-Wesley, NY, NY, ISBN 0-201-63208-X). The best
chapters are about hashing (a grossly underused technology),
arbitrary precision math, data compression, and CRCs. Even the sort chapter
sheds new light on old algorithms. The book reeks with useful
C code.
Larry Constantine's
Constantine on Peopleware (1995, Yourdon Press, Englewood Cliffs, NJ, ISBN
0-13-331976-8) is a fun book with plenty of
solid advice about managing software teams. There's no silver bullet, but
implement some of the ideas and you'll see measurable
improvements in productivity.
For a different
view of the industry, consider Fatal Defect, by Ivars Peterson (1995 Random
House, NY, NY ISBN 0-8129-2023-6). On second
thought, save yourself 25 bucks and skip it. Peterson attempts to expose the
perils of software, using only a handful of examples. One of
his solutions: an approach developed by a college professor. It's a great
success... uh, well, at least in the mind of the professor. The
only system developed using the new approach did take 8 years to complete,
rather more than the three budgeted...
Another book
worth skipping is Clifford Stoll's latest, Silicon Snake Oil (1995 Doubleday,
NY, NY ISBN 0-385-41993-7. Though Stoll
professes not to be a Luddite, I was left with quite the opposite impression.
Computers, and the Internet in particular, will alienate us
from each other. Snail mail is much more reliable and faster than email. The
computer screen is not reality. Some programs even have bugs!
The book is full of such banalities and errors, and simply wasn't worth the
time or money.
Through the Past
Electronics is
very much a here and now industry. "What have you done for me lately"
is a familiar gripe. Yet, you miss much of the wonder
of putting 300 million transistors on a chip unless you can appreciate the
agony of running 18,000 vacuum tube in the ENIAC. The history
of technology holds many useful lessons for us (jeez: why do I have to sell
history based on what it will do for you now?). It's also
fascinating.
Is your current
project a disaster? Take heart - most engineers find themselves in the same
predicament. Read The Soul of a New Machine,
by Tracy Kidder (1981, Little, Brown and Company, NY, NY ISBN 0-316-49170-5).
Kidder traces the story of Data General's development of the
Eclipse computer line. If you've been around for a while, nothing will sound
unbelievable... or maybe even unusual. No engineer will be
able to put this book down.
Technology, by
Donald Cardwell (1995, W. W. Norton, NY, NY ISBN 0-393-03652-9) traces the
development of engineering as a discipline from
before Watt's time to the present. You won't find much about electronics in
it, but it's a great overview of the history of technological
progress.
Looking Ahead
Too many people
shuffle through life, figuratively staring at their shoes instead of jumping
up and trying to get a peek over the heads of
the crowd. The electronics industry changes so quickly that every engineer
simply must be a bit of a futurist, if only to understand what
to study to maintain valuable career skills. Here's a couple of books about
subjects I think will revolutionize our industry in the next
few years or decades. No educated person can afford to be ignorant about these
concepts.
For a brief while
in the 1980s "chaos" was the darling of the media. Now the bloom
is off so you rarely hear it mentioned, yet chaos
theory is finding applications in all fields. I see it as one more nail in
the coffin of Descartian reductionism. My bookshelves are
filled with books about this fascinating subject, but the most accessible
is still James Gleick's original Chaos - Making a New Science
(1987, Viking Penquin, NY, NY ISBN 0-670-81178-5).
I found Engines
of Creation, by K. Eric Drexler (1986, Doubleday, NY, NY ISBN 9-385-19972-2)
a compelling story of nanotechnology, the
coming era of micromachines. Only one of my friends agrees; the rest felt
it was a tough slog. Perhaps this indicates the book is only for
ambitious readers; regardless, it's on my must-read short list.
Software magazines
abound in articles about genetic algorithms. Artificial Life, by Steven Levy
(1992, Pantheon Books, NY, NY, ISBN
0-679-40774-X) is a fast book that will whet your appetite for more. I was
left in awe, but wanting some technical examples. The
Artificial Life Explorer's Kit, by Ellen Thro (1993, Sams Publishing, Carmel,
IN ISBN 0-672-30301-9) comes with a disk that lets you build
and run real experiments. This is cool stuff.
Works of Wit
and Wisdom
Augustine's Laws,
by Norman Augustine (1983, AIAA, NY, NY ISBN 0-915928-81-7) is a must read
for anyone involved in large governement
contracts. It's funny, slightly depressing in it's cynical accuracy. One of
my favorite is "Software is like entropy. It is difficult to
grasp, weighs nothing, and obeys the second law of thermodynamics: it always
increases."
On the lighter
side -- we need a lighter side -- check out It's Not a Bug, It's a Feature
by David Lubar (1995, Addison-Wesley, NY, NY
ISBN 0-201-48304-1). On those depressing demo delivery days when nothing works
you'll at least have a good quip or two to ease the
pressure.