7.1 How Does It Work?

What's in the silicon that allows it to communicate with the MPLAB ICD 5 In-Circuit Debugger?

MPLAB ICD 5 can communicate with Flash silicon via ICSP and other target interfaces. On some devices, it communicates with a debug executive located in dedicated memory or user memory. For legacy 8-bit PIC devices, the debug executive resides in Program memory. On other devices, it communicates directly with the chip’s OCD module.

How is the throughput of the processor affected by having to run the debug executive?

The debug executive doesn't run while in Run mode, so there is no throughput reduction when running your code, i.e., the debugger doesn’t ‘steal’ any cycles from the target device.

How does MPLAB X IDE interface with the MPLAB ICD 5 In-Circuit Debugger to allow more features than older debug tools?

MPLAB ICD 5 communicates using the debug executive located in a dedicated area of memory or using chip’s OCD. The debug executive is streamlined for more efficient communication. The debugger contains an FPGA, large SRAM Buffers (1Mx8), and a High-Speed USB interface. The FPGA in the debugger serves as an accelerator for interfacing with the device in-circuit debugger modules.

On traditional debuggers, the data must come out on the bus in order to perform a complex trigger on that data. Is this also required on the MPLAB ICD 5 In-Circuit Debugger? For example, could I halt, based on a flag going high?

Traditional debuggers use a special debugger chip (-ME) for monitoring. There is no -ME with the MPLAB ICD 5, so there are no buses to monitor externally. With theMPLAB ICD 5, rather than using external breakpoints, the built-in breakpoint circuitry of the debug engine is used – the buses and breakpoint logic are monitored inside the part.

Does the MPLAB ICD 5 In-Circuit Debugger support complex breakpoints?

Yes. This is device dependent. If your device has it, then you can break based on a value in a data memory location. You can also do sequenced breakpoints, where several events have to occur before it breaks. However, you can only do two sequences. You can also do the AND condition and do PASS counts.

Will this slow down the running of the program?

There is no cycle stealing with the MPLAB ICD 5.

Is it possible to debug a dsPIC DSC device running at any speed?

The MPLAB ICD 5 is capable of debugging at any device speed as specified in the device’s data sheet.