6.4.6 Debugger Usage
The Interactive mode (IMODE) serves for debugger interaction. In IMODE, the debugger can send commands and receive status messages and error codes.
Involuntary Entry to IMODE
IMODE is only entered involuntarily when a debugger is connected and the Boot ROM experiences any error and/or Fault during the boot operation that prevents the device from executing the first mutable application code. The device may encounter unsafe operating conditions due to various reasons, including but not limited to:
- Invalid or inconsistent device configuration
- Memory Faults
- Unintended or undefined device states
Voluntary Entry to IMODE
This denotes when users have connected a debugger to the device and the device is ready to accept one of the supported Interactive mode commands. Voluntary entry into IMODE is typically done during product development or when debugging issues with a released product. Often, an IDE such as MPLAB® X serves as the user interface for issuing commands.
Debugger Interaction
Both entry methods require a cold-plugging sequence. See the DSU - Device Service Unit chapter for details. The debugger or programmer used must support IMODE and be compatible with this device. Compatible debuggers can be Microchip-designed, such as PICkit™ 5, ICE 4, ICD 5, or from a third party.
All compatible debuggers support commands to enter and exit IMODE, to manipulate the Device Access Level (DAL), and perform a full device erase.
The IMODE commands to read out configuration fuses and to run CRC on specific memory regions are considered advanced debugging features. As such, support for these commands is optional in debugger implementations, since they are not not intended for post-production use.
Refer to the Programming Specifications section for further details on the commands.
