Sa sobie zmienne roznych typow i wymiarow, uzywane w programie w roznych funckcjach, zdefiniowane jako /volatile/ zeby byl do nich dostep z kazdego miejsca programu. W programie jest opcja "zapisania" aktualnych ustawien do eepromu. Przy starcie programu zestaw zmiennych jest "odzyskiwany" z eepromu.
Niestety - obecnie ze wzgledu na przerozna konstrukcje zmiennych funkcje zapisu i odczytu wygladaja jak lista eeprom_write_byte(zmienna) tudziez "wyluskiwanie" zmienna > bajt, i zapis bajtow, podobnie odczyt. Sensu to nie ma za bardzo.
Jak zmusic kompilator/gcc (jesli sie da?) aby zestaw zmiennych trzymal w pamieci od adresu-do adresu, albo przynajmniej jedna po drugiej, tak by wskaznik do pierwszej z nich wskazywal na poczatek obszaru, a wskaznik do ostatniej (powiedzmy 8bitowej) koniec obszaru, dzieki temu jedna funkcja eeprom_write(read)_block bym mogl pojechac po wszystkich zmiennych bez wnikania w to jaka maja nature (bo i tak sa bajtami w ramie). Probowalem zdefiniowac zmienne jedna-po-drugiej, ale przy debugowaniu okazuje sie ze w ramie wcale nie sa w tej samej kolejnosci, obawiam sie ze po X kompilacjach i dorzuceniu/wyrzuceniu paru zmiennych moga sie okazac rozrzucone calkiem inaczej i padnie mi zapis/odzyskiwanie eepromu...