#include #include #include extern struct avr_eeprom_desc __ee_desc; uint16_t eeprom_save(uint8_t bank,avrEEPROM *data) { MUTEXED( &eepromMutex ); avrChksum chk; if (bank < __ee_desc.num_banks) { chksum(&chk,data,32); eeprom_update_block(data, (void*)(0x20 * bank), 32); eeprom_update_block(&chk, (void*)(__ee_desc.base_chksums + (bank<<1)), 0x02); bank += __ee_desc.num_banks; eeprom_update_block(data, (void*)(0x20 * bank), 32); eeprom_update_block(&chk, (void*)(__ee_desc.base_chksums + (bank<<1)), 0x02); return ESUCCESS; }; return -ENOFILE; };