Word-Write
long DataWord1;
long DataWord2;
long DataWord3;
long DataWord4;
long TargetWriteAddress;
NVMCONbits.NVMOP = 1;
NVMCONbits.WREN = 1;
NVMADR = TargetWriteAddress ;
NVMDATA0 = DataWord1;
NVMDATA1 = DataWord2;
NVMDATA2 = DataWord3;
NVMDATA3 = DataWord4;
NVMCONbits.WR = 1;
while (NVMCONbits.WR == 1);
CRC Checksum Calculation
long StartAddress;
long StartAddress;
long EndAddress;
int InitialValue;
int DelayValue;
int IdleValue;
NVMCRCCONbits.CRCIDL = IdleValue;
NVMCRCCONbits.DELAY = DelayValue;
NVMCRCCONbits.ON = 1;
NVMCRCST = StartAddress;
NVMCRCEND = EndAddress;
NVMCRCSEED = InitialValue;
NVMCRCCONbits.START = 1;
while(IFS0bits.NVMCRCIF == 0);