|
Thanks for the suggestion, but it didn't seem to work.
Here's what I did:
I identified the EEPROM section of flash from E2PROM_1.h
#define E2PROM_1_START_ADDR (0xff * 64) // absolute address of E2PROM_1 EEPROM device
which is 0x3fc0.
In the .hex file, I deleted the following line.
:403fc00030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030c1
Then tried to load the hex file in the ISSP programmer, but it complained that the checksum was invalid.
So, I initialized the area to zeros in the C code with the following in main.c:
// clear the EEPROM space
#pragma abs_address 0x3fc0 //E2PROM_1_START_ADDR
const char InitialValues[64] = {0x00};
#pragma end_abs_address
Now, the EEPROM area is all zeros, and I can delete the line without the ISSP programmer complaining.
:403fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1
But alas the EEPROM memory was still wiped when flashing.
Now that I think about it- I guess the chip has to do a full erase in order to be reflashed since it is secured. Seems like there may be no solution to preserving the calibration data...
|