10.2.1 Memories to Program

Select the memories to be programmed into the target. The table below shows all the possible options, however, only those options available for your selected device will be displayed in MPLAB X IDE.
Note: If Erase All Before Program is selected as shown in Program then all device memory will be erased before programming.
Table 10-1. Memories to Program Option Category
Auto select memories and rangesAllow PICkit 4 to Select Memories - The debugger uses your selected device and default settings to determine what to program.

Manually select memories and ranges - You select the type and range of memory to program (see below).

Configuration MemoryCheck to include Configuration Memory in the areas(s) to be programmed. This is always programmed in Debug mode.
Boot FlashCheck to include Boot Flash memory in the area(s) to be programmed. This is always programmed in Debug mode.
EEPROMCheck to include EEPROM memory in the area(s) to be programmed.
IDCheck to program the user ID.
Program MemoryCheck to program the target program memory range specified below.
Program Memory Range(s) (hex)The range(s) of program memory to be programmed. These are the starting and ending hex address range(s) in program memory for programming, reading, or verification. Each range must be two hex numbers (the start and end addresses of the range) separated by a dash. Multiple ranges must be separated by a comma (for example, 0-ff, 200-2ff). Ranges must be aligned on a 0x800 address boundary.
Note: The address range does not apply to the Erase function. The Erase function will erase all data on the device.
Preserve Program MemoryEnabling this option will cause the current program memory on the device to be read into MPLAB X IDE's memory and then reprogrammed back to the target device when programming is done. The range(s) of program memory that will be preserved is determined by the Preserve Program Memory Range(s) option below. Ensure that code is NOT code protected.
Preserve Program Memory Range(s) (hex)The range(s) of program memory to be preserved. Each range must be two hex numbers, representing the start and end addresses of the range, separated by a dash. Ranges must be separated by a comma (for example, 0-ff, 200-2ff). Areas are reserved by reading them into MPLAB X IDE and then programming them back down when a program operation occurs. Thus the preserved areas must lie within a memory range that will be programmed.
Preserve (Type of) MemoryEnabling this option will cause the current memory type on the device to be read into MPLAB X IDE's memory and then reprogrammed back to the target device when programming is done. Check to preserve Memory for reprogramming, where Memory is the type of memory. Types include: EEPROM, ID, Boot Flash, and Auxiliary. Ensure that code is NOT code protected.
Preserve (Type of) Memory Range(s) (hex)*The range(s) of the memory type to be preserved. Each range must be two hex numbers, representing the start and end addresses of the range, separated by a dash. Ranges must be separated by a comma (for example, 0-ff, 200-2ff). Areas are reserved by reading them into MPLAB X IDE and then programming them back down when a program operation occurs. Thus the preserved areas must lie within a memory range that will be programmed. Memory is the type of memory, which includes EEPROM, ID, Boot Flash, and Auxiliary. Ensure that code is NOT code protected.
* If you receive a programming error due to an incorrect range, ensure the range does not exceed available/remaining device memory.