Speicheraufbau Atmel Atmega32

Gast #46390
Lesenswert?
• ▲
▼
Hallo zusammen, ich (Anfänger) bin gerade dabei den atmel atmega32 in
Assembler zu programmieren. Ich habe nun das Problem das ich nicht
genau weiß wie der speicher des microcontrollers aufgebaut ist.
Mir ist zwar bekannt das es einen SRAM Speicher gibt ($0000-$085f
glaube ich) einen EPRom Speicher($0000-????) und einen Programmspeicher
(&0000-$3FFFF). Wie greife ich auf die einzelnen Speicher zu ? sind
alle Speicher in einem gemeinsamen Adressraum abgebildet ? ..... Wenn
ich ein Programm schreibe beginne ich ja mit rjmp main und dieses
Kommando liegt auf Speicherzelle $0000 anschließend kommen die
Interruptauswertebehandlung danach mein main programm. Die
Interruptvektoren sind doch im SRAM oder hab ich dann mein Programm
auch im SRAM oder im Programmspeicher?

Fragen über Fragen sicherlich nicht schwer aber in der Beschreibung ist
diese Problematik nicht näher beschrieben.

Wäre dankbar wenn einer die Lösung wüßte, damit ich endlich weiß welche
Speicherzellen ich denn überhaupt beschreibe...
Gast #46391
Lesenswert?
• ▲
▼
Guck ins Datenblatt, dort steht das alles drin.  Der Speicheraufbau
jedes einzelnen AVRs ist konkret dokumentiert.

Die AVRs benutzen eine sogenannte Harvard-Architektur, bei der jeder
der drei Adreßbereiche (RAM, ROM, IO) voneinander getrennt ist und
jeweils von 0 beginnend adressiert wird.  Für jeden Befehl ist es
dokumentiert, welchen Adreßbereich er benutzt, ein RJMP also z. B.
den ROM, ein LDS den RAM, ein IN den IO-Bereich.  (Die Register sind
zusätzlich mit Offset 0, der IO-Bereich mit Offset 0x20 in den
RAM-Bereich gemappt, der eigentliche RAM beginnt dann je nach AVR
bei 0x60 oder 0x100.)  Für den lesenden (und teilweise schreibenden)
Zugriff auf ROM gibt es Sonderbefehle (LPM, SPM).

Der Zugriff auf den EEPROM geschieht über IO-Register, kann also nicht
im üblichen Sinne direkt adressiert werden.

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