Hi,

I'm developping a arm-embedded project. I need to store some variables to EEPROM. What I'm doing now is manually give each variable an address and then I use that address to store the variable in EEPROM. Unfortunately, that's not easy. Yesterday I spent some hours trying to see why the code I wrote does not work. This morning I thought of a possible reason, and I think I'm right : I was overlapping some variables.

So I'm trying to find a simpler way to have the relative position of variables to use as an address in an EEPROM. I'm tinking about using a record. Is there a way to get the relative position of a record-element ?
Some psuedo-code :

EEPROM_Content : record of
 Var1 : byte;
 Var2 : word;
 Var3 : byte;
end{EEPROM_Content};

EEPROM_WriteByte(<position of Var1 in EEPROM_Content>,EEPROM_Content.Var1);
//<position of Var1 in EEPROM_Content> should be 0
EEPROM_WriteWord(<position of Var2 in EEPROM_Content>,EEPROM_Content.Var2);
//<position of Var2 in EEPROM_Content> should be 1
EEPROM_WriteByte(<position of Var3 in EEPROM_Content>,EEPROM_Content.Var3);
//<position of Var3 in EEPROM_Content> should be 4

I think I could use
@EEPROM_Content.Var1-@EEPROM_Content.Var1
@EEPROM_Content.Var2-@EEPROM_Content.Var1
@EEPROM_Content.Var3-@EEPROM_Content.Var1
as those positions, but is this computed at compile-time, or at run-time ? Am I right if I assume EEPROM_Content.Var1 is at relative position 0 in the record ? I prefer to have the individual variables written to EEPROM, but maybe writing the whole record in one go would be possible also. Then I don't need to hassle with the positions. I mean, it _is_ possible to do that but if it's suited for the project I don't know yet.

Other solutions ?

Mmm, writing things out clears the mind. I think it would be better to write the whole record.

Thanks for your input.

Regards,

Koenraad Lelong
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to