On many boards I have found that there is a circuitry called In-circuit debugger and In system programmer. What are these and how they are related to JTAG? I understand JTAG is also a kind of hardware debugger. Shall appreciate if someone can enlighten me.
-
\$\begingroup\$ An in system programmer means you can re-program a chip without removing it from the circuit. This is done by connecting a flying lead from a programmer to a board header (connector). A debugger is something that finds faults - usually a program that can determine if a program or piece of hardware is behaving itself and report back to the user. \$\endgroup\$– JIm DeardenCommented Jun 10, 2013 at 10:54
1 Answer
ISP (or ICP) means that it is possible to download a (new) application program to your microcontroller without removing it from its circuit. (Contrast this to the stone-age style of removing a chip from its socket, putting it in the programmer to be programmed, and then putting it back in the circuit to be tested, only to discover the next bug..)
ICD means that, while the chip is in the target circuit as described for ISP, you can set breakpoint(s), run the program, halt the program, examine and change variables, etc.
JTAG is a (hardware) communication mechansim beween a host and target system. IIRC it was originally designed for testing complex hardware. Many chips (most notably ARM chips) use it as (an) interafce to their ISP and/or ICD functions.