Cummins Centinel by Bill Gatliff and Paul Cantrell
Managing the addition of oil to a diesel engineŭs fuel-oil mix turns out to be a tricky problem. Hereŭs one design that worked well.
Device Drivers for
Windows CE 3.0
by Jean Gareau
Every operating system places requirements on device drivers. Hereŭs a quick tour of the Windows CE driver rulebook.
Debug Tip:
Circular History Buffer
by Andy Purcell
It is often useful to examine the sequence of events leading up to an observed software anomaly. Hereŭs a handy way to capture events of interest to RAM.
Murphy's Law A Version Therapy by Niall Murphy
Data formats change over time. To make upgrades easier, track these changes with version numbers.
Mobile IP by Larry Mittag
The problem with putting nomadic devices onto the Internet is that the Internet is designed to route packets hierarchically. The Mobile IP protocol was created to address this issue directly.
#include First, Do No Harm by Michael Barr
All of us who design multi-function devices should consider their functions separate. A problem with one subsystem should never create problems with another.
Programmer's Toolbox Looking at Clouds by Jack Crenshaw
It turns out that Brent was wrong when he
combined bisection with parabolic interpolation. Thereŭs a better way to converge on a minimum.
Beginner's Corner Volatile by Nigel Jones
The use of volatile is poorly understood by many programmers. This is not surprising, as most C texts dismiss it in a sentence or two.
Programming Pointers Non-modifiable Lvalues by Dan Saks
Lvalues actually come in a variety of flavors.
If you really want to understand how compilers evaluate expressions, you'd better develop a taste.
Spectra Shadow Dancing by Don Morgan
Filters arenŭt just for removing noise and other unwanted parts of a signal. They can, in fact, be used to analyze unknown systems in real time.
Break Points Asynchronicity by Jack G. Ganssle
Race conditions are surprisingly easy to create, even when programmers know of their dangers. Hereŭs a frequent timer bug to watch out for.