In-circuit Emulators (ICE) come today in two fashions.
Traditionally, an emulator is a piece of hardware which contains a processor that replaces your target processor. The emulator processor is under the control of development system. This allows you to execute your software at full target speeds but under PC control. Also you can trace the real time events and like a simulator you can single step, run upto a certain address, add breakpoints and so many other nice features.
In a modern approach, a simplified version of the emulation hardware is built directly into the microcontroller and communicating with the PC via a few pins (serially - often according to the JTAG standard). Although it misses some of the distinct features of the full-blown emulator (e.g. the extensive trace memory), it still enables to run the microcontroller at full speed with unlimited resources, and place (conditional) breakpoints, examine internal registers content, single-step etc. under the control of PC. The added benefit is, that the debugging is performed on the very same hardware as will be used for production.
Erik Malunds comments on ICE:
Basically there is two versions of ICEs the bondout based which uses a special chip where some internal thingies have been brought out and "kick based" - do not know exact term - which are (Philips only?) chips that can be "kicked" into emulation. The bondout based ICEs need a pod for each and every derivative you want to emulate, the "kick based", you just pop another regular chip in e.g. one of my Ceibos will emulate P89x51Rx2/P87c52/P8xC55x/P8xC591/P89C66x(not 669) just by replacing the chip. Another will emulate each and every x1 chip Philips ever made.
I have used ICEs from
Nohau - bondout based - in my opinion too expensive for the little more they do than the economy units, also whenever you have a problem "we will fix it in next release" which arrives sometimes weeks later
Metalink - Kick based, i think, - tried one briefly, nice unit
CEIBO (www.ceibo.com) - Kick based for most Philips chips (LPC is "universal bondout") - excellent price perfomance, fast response to problems. One caveat is that Ceibo does not allow multiple instances of the software, so if you debug 2 communicating chips, you need 2 PCs. I like them (I have 5)
Philips NZ (aka aqura) - pod based - nice units, cheap, can do things other cheapies can not, the one I tried had manageble quirks.
Phyton - ??? - did not have X2 emulator 2 years after the introduction of the X2 devices. I had a quick look at the one they sent, seems nice, but why go for a type with that slow a response to new derivatives ???
Lauterbach - pod based - have not tried it for the '51, just for ARM, but WOW.
The only "built in ICE" I have used is the SILabs (nee Cygnal). It is free and proves you get what you pay for. It does everything you would expect from a basic ICE, but every release I have tried have had bugs such as "can not change a bit" "scrolling XDATA display skips parts" and such. My main complaint is that, where with a "real" ice you click the mouse once or twice, here you have to click 5 or 6 times to get to the same result. Also the hardware is soewhat shaky, you get occasional false error messages and it seems you have to replace a "worn out" adapter about once a year.
I would never approach debugging anything using a processor for which I did not have ICE functionality.
End of Eriks comments
A full-blown emulator is far more expensive than a simulator
. But the benifit of accelerated development time easily justifies the cost. In the second case, the added emulation supporting hardware costs "nothing" (it's included in the cost of the production chip), but the associated software (and cable) may not be free.
To be added:
Links to emulators
- emulated chips (+needed "pods" or so)
Links to the "builtin" ICE, with description