Michael Schankin wrote:
> Da fehlt ja auch noch ne Menge Code.
Und warum?
> Fakt ist aber, das die Variable
> nach dem RESET den selben Wert hat, wie vorher. Das sehe ich an meiner
> Elektronik, und auch mit dem Debugger.
Strange...
> Habe grad eben mal nen anderen atmega129 probiert,
Ist das der Nachfolger vom Mega128? Kannte ich noch gar nicht... SCNR
> Wie läuft eigentlich die Vergabe der adressen für solche Variablen ab?
> Wird das durch den Compiler festgelegt? Oder macht das der Controller
> jedesmal wenn er das Programm startet? Kannst du mir mal den ungefähren
> Ablauf bei einer solchen globalen Variable erklären?
Für die Platzierung der Daten im Speicher (also das Ersetzen der
symbolischen Bezeichner durch Speicheradressen) ist der Linker
zuständig. Im Prinzip fügt der Linker die vom Compiler übersetzten
Module zu einem lauffähigen Programm zusammen. Im Programmspeicher des
Controllers stehen schließlich keine Variablen, sondern nur Adressen.
Und die sind fest, also zur Laufzeit des Programms nicht änderbar.