jens schrieb:
> müsste ein HeaderFile im EEPROM meines AtMega32 ablegen.
Warum das, willst du auf dem armen ATmega32 etwa einen GCC laufen
lassen?
> Was genau ist das eeFooByteArray
Letztlich weiter nichts als eine Platzhalter-Definition, damit der
Linker in der section .eeprom den notwendigen Platz einräumt und dir
ein Symbol definiert, das die Anfangsadresse (im EEPROM) bezeichnet.
Außerdem füllt der Linker die Initialisierungsdaten (die du vermutlich
in deinem Headerfile angibst) ins object file, von wo aus du sie
mittels avr-objcopy extrahieren und mit deinem Programmer in den
EEPROM laden kannst, wenn du willst.
> und was lese ich auf dieses
> eeFooByteArray aus?
Die Initialisierungsdaten, wenn du sie denn auf diese Weise
hingeschafft hast, oder die später geänderten Daten (es wird ja einen
Grund haben, warum du sie in den EEPROM legen willst).
> Meine Variable, die ich schreiben möchte, ist myByteBuffer, oder?
Zum Beispiel, oder auch ganz anders -- woher sollen wir das denn
wissen, wie du deine Varaiblen nennst?
> Warum
> wird da dann nach dem Schreiben ins EEPROM wieder was ausgelesen?
Weil die CPU die Daten im RAM (oder in einem Register) braucht, um was
damit anfangen zu können, und weil der Zugriff darauf nicht über eine
normale Speicheradresse erfolgt (*), sondern über ein paar Aktionen
auf zwei IO-Registern. Allerdings sagt natürlich niemand, dass du das
ganze Array auf einmal in den RAM lesen musst, du kannst das auch in
beliebig kleinen Teilstücken machen.
(*) Der Xmega kann optional auch memory-mapped den EEPROM lesen, dann
könntest du das rücklesen auch beliebig mit einem Zeiger machen.
Dauert halt nur einen Takt länger als beim RAM.