Hallo, kann mir jemand auf die Sprünge helfen?
Ich möchte eine Struktur im EEPROM sichern und zur Konsistenz-Sicherung
vor dem Sichern ein Byte auf 0xff, nach dem Sichern (bzw. zusammen mit
der Struktur) dieses Byte auf 0 setzen (es heißt 'EE_Cons' in der
Struktur, und ich gehe davon aus, daß die Funktion bzw. das Makro
'eeprom_write_block' von vorn nach hinten in dieser Reihenfolge sichert
- ist es nicht so?).
Mein Code (Teil eines größeren Programms):
#define EE_ADDR 0 /* Start-Adresse im EEPROM */
struct
{
uint8_t EByte1,EByte2,EByte3,EByte4,EByte5;
uint8_t EE_Cons;
} ee;
void save_ee(void)
{
eeprom_write_byte((void *)(EE_ADDR+offsetof(struct ee,EE_Cons)),0xff);
ee.EE_Cons=0;
eeprom_write_block(&ee,(void *)EE_ADDR,sizeof(ee));
}
Die Addition von 'offsetof' zum Zeiger im EEPROM-Adreßraum macht nun
Probleme; ich habe schon andere Formulierungen versucht, aber alles
scheitert. Der Compiler bringt die Fehlermeldung
"error: dereferencing pointer to incomplete type"
Kann mir jemand einen Hinweis geben, was ich falsch mache? Danke schon
mal.
Günter