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