Sunday, 16 March 2014

debugging - What is the functional difference between an in-circuit-debugger and an in-circuit emulator?


In-circuit emulators (abbreviated ICE) boast about their awesome debugging features, and also boast high price tags.


In-circuit debuggers (abbreviated ICD) can do most of the stuff that an ICE can do, but often cost much less.



I know that way back in the day, ICEs would actually remove the problem chip from the socket and replace it with an emulator cable, but with modern QFN, BGA, and fragile TQFP packages, it seems that most products calling themselves "ICE" debuggers are connected to a debug header in much the same way that an ICD would be.


Here are some examples of products which use "ICE" in the name:



There are also JTAG 'ICE" products from several vendors. Note that I'm not discounting these because they're not physically in-circuit, but I would discount them if they don't function as a true ICE.


In what sort of development tasks do I need an ICE, and when should I be content with an ICD? Let's assume that I want to step through my code, and not use LEDs and printf() statements.


What are some examples of problems which you've solved with an ICE but could not (realistically) have solved without it?




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...