00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "global.h"
00016
00017 #include "i2ceeprom.h"
00018
00019 void eeprom_read_block(u08* data, u08* memaddr, u16 sizebytes)
00020 {
00021 int i;
00022
00023 for(i=0; i<sizebytes; i++)
00024 {
00025 *data++ = i2ceepromReadByte(0xA0, (u32)memaddr++);
00026 }
00027 }
00028
00029 void eeprom_write_block(u08* data, u08* memaddr, u16 sizebytes)
00030 {
00031 int i;
00032
00033 for(i=0; i<sizebytes; i++)
00034 {
00035 i2ceepromWriteByte(0xA0, (u32)memaddr++, *data++);
00036 }
00037 }
00038
00039 u08 paramLoad(u08* parameters, u08* memaddr, u16 sizebytes)
00040 {
00041 u16 i;
00042 u08 checksum_stored=0;
00043 u08 checksum=0;
00044
00045
00046 eeprom_read_block(parameters, memaddr, sizebytes);
00047
00048 eeprom_read_block(&checksum_stored, memaddr+sizebytes, sizeof(u08));
00049
00050
00051 for(i=0;i<sizebytes;i++)
00052 checksum += parameters[i];
00053 checksum = ~checksum;
00054
00055 if(checksum == checksum_stored)
00056 return TRUE;
00057 else
00058 return FALSE;
00059 }
00060
00061 void paramStore(u08* parameters, u08* memaddr, u16 sizebytes)
00062 {
00063 u16 i;
00064 u08 checksum=0;
00065
00066
00067 for(i=0;i<sizebytes;i++)
00068 checksum += parameters[i];
00069 checksum = ~checksum;
00070
00071
00072 eeprom_write_block(parameters, memaddr, sizebytes);
00073
00074 eeprom_write_block(&checksum, memaddr+sizebytes, sizeof(u08));
00075 }
00076