Memory overflow: Getting here from there -

Memory overflow: Getting here from there

Time is relative; just ask any physicist or project manager. If the age of Embedded Systems Design magazine were translated into geologic time our 18 years might convert to Cambrian days and our readers into trilobytes. These articles from days of future past hold the same relevance today as when they were first published. Although we keep evolving, it's good to look back at articles you may have missed–articles that just might hold the key to the problem you're grappling with now.

0x04 Years Ago
“Priority Inversion” by David Kalinsky and Michael Barr, April 2002.
“The real trouble arises at run-time, when a medium-priority task preempts a lower-priority task using a shared resource on which the higher-priority task is pending. If the higher-priority task is otherwise ready to run, but a medium-priority task is currently running instead, a priority inversion is said to occur.”

“USB Debug Tips” by Jan Axelson, April 2002.
“USB is a flexible, high-speed replacement for serial and parallel ports. But flexible also means complicated–it's much harder to debug a USB design and qualify your product's compliance.”

0x08 Years Ago
“Embedded x86 Programming: Protected Mode” by Jean Gareau, April 1998.
Story not available online.
“The x86 architecture is ubiquitous on the desktop and is spilling over into embedded systems environments. This article begins a series designed to help you on your way toward implementing an embedded x86-based system.”

“How I Got Here” by Dan Saks, April 1998.
Story not available online.
“Too many embedded systems programmers use concerns about the size and speed of their code as an excuse for using poor design and coding practices. This is unfortunate. I think the key to good embedded programming is to find ways to address these concerns while making as few compromises as possible.

With the possible exception of the smallest, most constrained applications, typical embedded applications are just some combination of capturing input, storing and retrieving data, performing computations, and generating output. In other words, most embedded programming is just plain programming; therefore, by and large, good embedded programming technique is just plain good programming technique.”

0x10 Years Ago
“Multitasking on the '386” by Jim Betz, April 1990.
Story not available online.
“With Intel's introduction in 1985 of the 80386, developers were faced with a processor that far exceeded any of Intel's previous offerings. In the PC marketplace, 8086 and 80286 compatibility combined with faster execution speed made the processor's success a foregone conclusion. For developers of embedded systems, however, the addition of new architectural features was even more compelling than speed.”

#include: “Just-in-Time Scheduling,” by Tyler Sperry, April 1991 .
Story not available online.
“There is already abundant evidence that computer products always ship several months after the originally scheduled release date. It's a cosmic law, and the sooner we recognize it as such, the happier we'll be.

My proposal is a simple one. Effective April 1st, we replace all of the existing calendars with new ones that use dynamically allocated months. If you have some work left over at the end of a calendar month, no problem! Just instantiate some virtual days, inherited from the preceding month. The benefits to marketing departments should be obvious–a few 120-day months would enable even companies like Lotus and Microsoft to ship on schedule.

Granted, we'll have to work a few bugs out of this scheme. In particular, it'd be nice to have a way to keep destructors out of the hands of the IRS and the landlord class. Synchronization problems pop up if you have more than one team working on a project. Rather than instigate too much change for the industry at one time, I suggest we follow the time-honored approach of categorically denying any problems until we're ready for the next release.

The operation of such a program is described in a self-promotional paper, “A Calendar with Limited, Unstructured Delay Generation and Enhancement.” The paper will be delivered at a conference as soon as we can find a way to work in the obligatory discussion of the future of RISC and bus architectures.”

Jim Turley is the editor in chief of Embedded Systems Design. You can reach him at .

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.