Config struct an feste Adresse im EEPROM speichern (ATmega32, avr-gcc)

OP #2738352
Lesenswert?

Hallo,

vielleicht denke ich im Moment zu kompliziert...

Ich habe eine recht umfangreiche Config Structur die ich immer nur ZUM 
TEIL auch zur Laufzeit benötige (Pseudocode)
1
struct model
2
{
3
 char name[10];
4
 char mac[8];
5
 ......
6
}
7

8
struct config
9
{
10
 unsigned char sn[8];
11
 struct model models[10];
12
};
So ganz grob, ich bin da noch am ausarbeiten vor dem Code schreiben, 
daher nur Pseudo Code.

Jetzt wäre es schön sagen zu können:
1
struct config EEMEM eeConfig;

Wichtig, der Benutzer kann die Firmware selbst updaten, daher muss zu 
100% sicher sein, das die Config immer an der gleichen Adresse im EEPROM 
steht.
Das kann ich ja mit EEMEM nicht sicher stellen. Vor allem wenn ich mal 
einen neueren Compiler nutze, Variablen dazu kommen, etc....
Und ich möchte natürlich eine Default Config im EEPROM haben.

Gibt es da keine Möglichkeit das einfach zu machen ?
Ich kann die Startadresse ja einfach fest im Programm hinterlegen 
(struct config *eeConfig = 0x01;), dann bekomme ich aber keine 
eeprom.hex Datei zum schreiben...

Ich muss auch immer nur 1 Teil der Config im Speicher haben oder darauf 
zugreifen, das sollte aber für mein Problem irrelevant sein. Das sollte 
Dank Struct ja kein Problem sein.

Ich bin doch bestimmt nicht der einzige, der das Problem hatte ?!

Dann noch eine Frage: Ist es möglich zu Compilezeit eine CRC über das 
EEPROM zu berechnen, also über meine Default Daten, die ich schreiben 
will, damit die in der EEP Datei landen ?

Gruss
Juergen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren