Pár napja próbálok rájönni az optimális megoldásra, lehet alapjában rossz felé keresek, így az alap problémámat is leírom és azt is, hogy én mire gondoltam mint megoldás. Viszont annak a megvalósításánál gondba ütközök.
EEPROM-ba szeretnék menteni konfigurációs adatot, paramétereket, válozókat. Célszerű ezt laponként kezelni és egyben kiírni akár. Ha változónként teszem akkor is hasonló lenne a helyzet.
A lap mérete 64 byte.
Az egyes lapokat struct-ba próbálnám rendezni, így a program futási ideje alatt a változók elérhetőek lennének. Emellett tudnám tárolni a lap kezdőcímét.
Kb. valahogy így:
typedef struct {
unsigned char page;
char ssid[32];
char psk[32];
} eewifi;
typedef struct {
unsigned char page;
char temp1;
char temp2[2];
long temp3;
} eetemp;
eewifi page_wifi1;
eewifi page_wifi2;
eetemp page_temp;
Nem egyforma méretűek, a szervezési viszont mindegyiknek azonos, az elején van egy cím, utána az adatok (max 64byte).
Szeretném 1 függvénnyel kezelni az eewifi, eetemp típusokat.
Pl. írni egy olyan függvényt ami kiírja a benne tárolt összes adatot, tehát eewifi-nél a címét és 64 byte-ot az eetemp-nél pedig a címét és 7 byte-ot.
A végső cél, hogy az egyes lapokat amiket struct-ba szerveztem kiolvasó és beíró függvénnyel kezeljem. A későbbiekben ne kelljen mindegyik struct-ra egyedit írni.
Próbáltam a pointerek világában elmerülni, de eddig vagy már fordítási hibába került, vagy pedig nem azt adta vissza amit vártam volna.
Ilyen dolgokat mikrovezérlőn ASM-ben megírtam amit akartam, persze vigyázva arra, hogy ne írjak felül semmit, onnan olvassak ahonnan kell, stb... Most viszont x86-on próbálnám előbb, hogy működik-e az elgondolás majd később ESP32-re menne a program.
Szívesen veszek bármilyen iránymutatást, vagy akár egy működő programrészt ami kiírja bármelyik struct tartalmát, ahogy fentebb vázoltam.