24.16 Program Flash Memory (PFM) Erase
Program Flash memory can be erased entirely. All three discrete NVMOP values, 0111, 0110, 0101, do the same operation of erase of entire Flash. When erasing the entire PFM area, in case of RTSP (Run Time Self Programming), the code must be executing from BFM. When erasing the entire PFM area, PFM write-protection must be completely disabled.
The following code shows code for erasing the entire Flash bank.
Program Flash Erase Code Example:
…
// define Flash operation
NVMCONbits.NVMOP = 0x7; // NVMOP for entire PFM erase
// Enable Flash Write
NVMCONbits.WREN = 1;
// commence programming
NVMInitiateOperation(); // see Initiate NVM Operation (Unlock Sequence Example)
// Wait for WR bit to clear
while(NVMCONbits.WR);
// Disable future Flash Write/Erase operations
NVMCONbits.WREN = 0;
// Check Error Status
if(NVMCON & 0x3000) // mask for WRERR and LVDERR bits
{
// process errors
}
…