#include #include "Kernel.h" #include "EAT.h" #include "EEPROM.h" #define VERSION 1 #define MAX_ENTRIES 16 #define EEPROM_SIZE 4096 byte version = 0; byte options = 0; byte modules[MAX_ENTRIES]; byte lengths[MAX_ENTRIES]; int EAT_get_offset(byte module); void EAT_load() { EEPROM.begin(EEPROM_SIZE); version = EEPROM.read(0); options = EEPROM.read(1); if (version != VERSION) { char msg[255]; sprintf(msg, "Unsupported version (%d) -- please reinitialize EEPROM.", version); Kernel_panic(msg); //Kernel_panic("Unsupported EAT version -- please reinitialize EEPROM."); } for (int i=0; i EAT_get_length(module) - 1) { Kernel_panic("Attempt to write outside EAT module bounds"); } offset += module_offset; EEPROM.write(offset, value); EEPROM.commit(); } byte EAT_read(byte module, byte offset) { int module_offset = EAT_get_offset(module); if (offset == -1) { Kernel_panic("Attempt to write to uninitialized EAT module"); } if (offset > EAT_get_length(module) - 1) { Kernel_panic("Attempt to write outside EAT module bounds"); } offset += module_offset; return EEPROM.read(offset ); }