Forum: Mikrocontroller und Digitale Elektronik AVR ATmega 2560 Speicher


von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

Hi Leute,

Ich interressiere mich für den Speicheraufbau und das Speicherverhalten 
vom ATmega2560.
Ich habe in der letzten Zeit sehr viel im Internet recherchiert und da 
nur Unterlagen für sehr gebildete Leute gefunden und nicht viel 
verstanden. :(
Daher bitte ich euch den Speicheraufbau und das Speicherverhalten des 
ATmega 2560 so leicht wie möglich zu erklären. Also deppensicher für 
mich ;)

Danke im Vorraus :)

von Peter D. (peda)


Lesenswert?

Sieh Datenblatt, Abschnitt:

8. AVR Memories


Peter

P.S.:
Was soll ein "Speicherverhalten" sein?

von spess53 (Gast)


Lesenswert?

Hi

>Daher bitte ich euch den Speicheraufbau und das Speicherverhalten des
>ATmega 2560 so leicht wie möglich zu erklären. Also deppensicher für
>mich ;)

Und bei deinen Recherchen bist du nicht auf das Datenblatt gestossen?

http://www.atmel.com/Images/doc2549.pdf

Da ist der Speicheraufbau ab S.21 in '8. AVR Memories' erläutert.

MfG Spess

von Martin K. (maart)


Lesenswert?

spess53 schrieb:
>
>
> Und bei deinen Recherchen bist du nicht auf das Datenblatt gestossen?
>
> http://www.atmel.com/Images/doc2549.pdf
>
> Da ist der Speicheraufbau ab S.21 in '8. AVR Memories' erläutert.
>
> MfG Spess

Das werden dann die Unterlagen für sehr gebildete Leute sein.

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

natürlich bin ich auf diese Datenblatt gestoßen
aber ich verstehe die hälfte nicht, dass ist das problem
und deswegen suche ich unterlagen die leicht verständlich sind

von Oliver S. (oliverso)


Lesenswert?

Nun, dann beschreib doch hier schon mal die Hälfte, die du verstanden 
hast. Vielleicht kannst du dann auch konkretere Fragen zur anderen 
Hälfte formulieren, die sich dann auch beantworten lassen.

Alternativ schreib hier mal deine Hausaufgabe wörtlich rein, vielleicht 
liest ja ein Lehrer mit, und hilft bei der Beantwortung ;)

Oliver
P.S. HTL ?

von troll (Gast)


Lesenswert?


von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

* welche Speicher es gibt
 * Speichergrößen
 * Harvard Architektur
verstehe ich

aber was es mit den I/O Memory aufsich hat, dass verstehe ich nicht

von Karl H. (kbuchegg)


Lesenswert?

Thomas G. schrieb:
> * welche Speicher es gibt
>  * Speichergrößen
>  * Harvard Architektur
> verstehe ich
>
> aber was es mit den I/O Memory aufsich hat, dass verstehe ich nicht


Ein Teil des SRAM Speichers fungiert als 'Speicher' in dem sich die 
Prozessor Register befinden. Also das ganze DDRx, PORTx, PINx, .... 
Geraffel.

Für dich als Assembler Programmierer sieht es einfach so aus, als ob in 
den ersten Speicherzellen im SRAM sich genau diese Register 
wiederfinden.

Mehr steckt da nicht dahinter.

: Wiederhergestellt durch User
von Spess53 (Gast)


Lesenswert?

Hi

>aber was es mit den I/O Memory aufsich hat, dass verstehe ich nicht

Das ist der Speicherbereich in dem sich die IO-Register, z.B. Ports, 
Timer, UART ..., befinden. Die unteren 64 IO-Register können mit in/out 
(1 Byte) angesprochen werden. Die External I/O Registers werden wie 
normaler RAM (sts/lds (2Byte) adressiert.

MfG Spess

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Thomas G. schrieb:
> aber was es mit den I/O Memory aufsich hat, dass verstehe ich nicht

Das ist kein Speicher an sich, sondern das sind die Geräteregister
der Peripherie, die in den Speicheradressraum gewissermaßen
eingeblendet sind.

Stichwort für Gugel / Wikipedia: "Memory-mapped IO".

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

Danke.
das hat mir sehr geholfen :)

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

Eine Frage habe ich noch:

was ist der Z-Pointer beim Flash

von Karl H. (kbuchegg)


Lesenswert?

Der Z-Pointer ist die Zusammenfassung der Register R30 und R31.

gemeinsam formen die beiden also einen 16-Bit Wert, der als Adresswert 
benutzt werden kann um von dieser Adresse aus dem Speicher zu lesen.

Wenn du so willst:
Du hast einen Block mit Zetteln. Jeder Zettel hat eine Nummer. Jeder 
Zettel ist eine Speicherstelle auf der du einen Wert 'speichern' und 
wieder auslesen kannst.
2 dieser Zettel nennst du Z-Pointer. Und mit der richtigen Operation 
werden die beiden Zettel genommen, die Zahlen die da drauf stehen zu 
einer weiteren Zahl zusammengefasst und mit dieser letzten Zahl wird 
dann der eigentliche Zettel anhand der Nummer festgestellt von dem 
gelesen oder geschrieben werden soll.

Und das ist ganz praktisch. Denn es bedeutet, dass du mittels einer 
Berechnung bestimmen kannst, von wo du lesen oder schreiben willst. 
Alles was du tun musst ist, das Rechenergebnis auf die Z-Pointer-Zettel 
zu schreiben und die Operation zu benutzen.

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

und bein SRAM hat der Z Pointer auch die gleichen Aufgaben

von Spess53 (Gast)


Lesenswert?

Hi

>und bein SRAM hat der Z Pointer auch die gleichen Aufgaben

Ja. Aber für den RAM gibt es noch zwei weitere Pointer: X, Y.

MfG Spess

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

und was machen die 2 weiteren

von Spess53 (Gast)


Lesenswert?

Hi

>und was machen die 2 weiteren

Manchmal brauch man halt mehrere Pointer auf verschiedene 
Speicherbereiche gleichzeitig.

MfG Spess

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Spess53 schrieb:
> Manchmal brauch man halt mehrere Pointer auf verschiedene
> Speicherbereiche gleichzeitig.

Z. B. fuer etwas wie
*x++ = *y++ + *z++

von Liberty Limerix (Gast)


Lesenswert?

> Z. B. fuer etwas wie
> *x++ = *y++ + *z++

Auweia - nein, sicher nicht, da undefiniertes Verhalten (soferm C).

von Thomas G. (Firma: Schüler) (asdf123)


Lesenswert?

Danke Leute :D

von Karl H. (kbuchegg)


Lesenswert?

Liberty Limerix schrieb:
>> Z. B. fuer etwas wie
>> *x++ = *y++ + *z++
>
> Auweia - nein, sicher nicht, da undefiniertes Verhalten (soferm C).

*) ist kein C
*) selbst wenn, was soll da drann undefiniert sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.