With the rise of low-cost in-circuit debugging capabilities, as exemplified by ARM’s In-Circuit Emulator (ICE), single-step coding instruction-by-instruction has become easy and cost effective. Variables can be examined and modified, register contents displayed, and memory dumped; however, these operations are generally only possible when the target system has been shut down. Many real-time systems cannot afford to be shut off, so how does one see inside these systems and monitor run-time behavior?

To tackle the challenge of observing the inner workings of an embedded system, engineers employ a vast array of tools, such as light-emitting diodes (LEDs), test probes, oscilloscopes, logic analyzers, emulators — just about anything that can provide some small glimpse inside a system. This article briefly examines some of the most commonly used techniques and proposes a powerful, user-friendly, and inexpensive new alternative.

Reprinted in its entirety from ARM IQ Vol. 6, No. 2, 2007