Electronic – In Circuit Emulation vs On Chip Debugging


I am using code warrior to debug my code which is dumped on to the NXP Board. By definition would code warrior belong to the In circuit emulator or the On Chip Debugger. I am not clear about the definitions from the web resources.

Best Answer

This would be on chip debugging or in chip/circuit debugging. No one actually does in-circuit emulation (ICE) anymore that I know of, but the terminology exists and is used as a synonym for in chip or in circuit debugging.

40 or so years ago, before they had the technology to do on circuit debugging, chip manufacturers like Intel provided expensive (think thousands of $$) in-circuit emulators that were a box with a cable terminating in a plug (typically a DIP format, as many processors came in 40-pin DIPs). The cable would plug into the processor socket on the user's PCB, and the program would actually run out of circuitry inside the ICE. This one was for the Intel 8080:

enter image description here

Today, companies like Microchip still use the term (like their REAL ICE product, which is not a real ICE), but nothing is really being emulated -- everything is taking place inside the target microprocessor with extensions for debugging. They call their less expensive version the ICD-3, for In-Circuit Debugger, so they do use both terms. The difference between the two is that the REAL ICE has a trace facility similar to JTAG interfaces.

To further complicate things, Microchip did used to make a real ICEs called ICE2000 and ICE4000 which did use parallel cables terminating in a processor plug like the picture above.

In-circuit debugging is also closely to In-Circuit Serial Programming (ICSP) which typically use a clock and bi-directional data line to allow programming (and readout, if not locked) of the processors Flash memory. The same interface is used for both debugging and programming.