я сделал файл EEPROM который пихает данные и читает данные из еепром.
функции у него
Код
read_data(void * var, unsigned adr, unsigned len);
write_data(void * var, unsigned adr, unsigned len);
и все... Дальше дефайнами размечаю память
Код
#define BASE_ADDR 0x0000
#define VAR1_ADDR BASE_ADDR
#define VAR2_ADDR (BASE_ADDR + sizeof(Var1))
или просто напрямую без sizeof в уме высчитываю и все...
запись-чтение
Код
read_data((void *)&var1, VAR1_ADDR, sizeof(var1));
write_data((void *)&var2, VAR2_ADDR, sizeof(var2));
зачем шаблоны то? Для некоторых частых переменных делаю макросы.