Some devices have special memory areas dedicated to the debug executive. Check your device data sheet for
details.
• Special “in-circuit debug” registers in the target device are enabled by MPLAB X IDE. These allow the debug
executive to be activated by the debugger. For more information on the device’s reserved resources, see
Resources Used by the Debugger
.
• The target device is run in Debug mode.
3.4.2
Debugging Details
The figure below illustrates the MPLAB PICkit 4 In-Circuit Debugger system when it is ready to begin debugging.
Figure 3-9. MPLAB
®
PICkit
™
4 In-Circuit Debugger Ready to Begin Debugging
To find out whether an application program will run correctly, a breakpoint is typically set early in the program code.
When a breakpoint is set from the user interface of MPLAB X IDE, the address of the breakpoint is stored in the
special internal debug registers of the target device. Commands on PGC and PGD communicate directly to these
registers to set the breakpoint address.
Next, the
Debug > Debug Main Project
function is usually selected in MPLAB X IDE. The debugger tells the debug
executive to run. The target starts from the Reset vector and executes until the Program Counter reaches the
breakpoint address that was stored previously in the internal debug registers.
After the instruction at the breakpoint address is executed, the in-circuit debug mechanism of the target device “fires”
and transfers the device’s program counter to the debug executive (much like an interrupt) and the user’s application
is effectively halted. The debugger communicates with the debug executive via PGC and PGD, gets the breakpoint
status information and sends it back to MPLAB X IDE. MPLAB X IDE then sends a series of queries to the debugger
to get information about the target device, such as the file register contents and the state of the CPU. These queries
are performed by the debug executive.
The debug executive runs like an application in program memory. It uses some locations on the stack for its
temporary variables. If the device does not run, for whatever reason (no oscillator, faulty power supply connection,
shorts on the target board, etc.), then the debug executive cannot communicate to the MPLAB PICkit 4 In-Circuit
Debugger, and MPLAB X IDE will issue an error message.
Another way to set a breakpoint is to select
Debug > Pause
. This toggles the PGC and PGD lines so that the in-
circuit debug mechanism of the target device switches the Program Counter from the user’s code in program memory
to the debug executive. Again, the target application program is effectively halted, and MPLAB X IDE uses the
debugger communications with the debug executive to interrogate the state of the target device.
Operation
©
2020 Microchip Technology Inc.
User Guide
DS50002751D-page 16