Extending EEPROM life

CyberOddity:
To ensure the EEPROM lasts as long as possible.......

As DrAzzy said, the eeprom will last a lot longer than you could ever need.

BUT, if you insist, then how about this idea?

First, initialize all of eeprom to 0xFF (i.e. all erased). Then, have your code (when running properly and saving restart points) do this (pseudo code):

S = eeprom_size (2048, 4096, whatever your board has)
for (x = 0; x < S; x++) {
if eeprom_read == 0xFF {
break;
}
}
now, X has the address of the first unused location
eeprom_write (X, your_data);

To recover from a crash, do the same thing (find the first unused eeprom location) then back up one and grab that data (which is the last valid one you saved).

Hope this helps.