Forum: Mikrocontroller und Digitale Elektronik Frage zur Programmierung der AVRs (Adressraum)


von AVR Coder (Gast)


Lesenswert?

Hallo,

hab zur Programmierung der AVRs mal ne Frage. Laut Datenblatt ist der
Adressraum ja wie folgt unterteilt:

0000..001F: 32 General Purpose Register (R0..R16)
0020..005F: 64 IO Register
ab 0060: interner bzw. externern RAM

Kann man dann auf die Register auch über den Speicher zugreifen? Quasi

lds r16,4 statt mov r16,r4 oder
sts $2F,r16 statt out $F,r16?

Oder wird der Bereich 0..5F aus dem regulären Adressbereich
ausgeblendet?

von AVR Coder (Gast)


Lesenswert?

Pardon, meinte

0000..001F: 32 General Purpose Register (R0..R32)

statt

0000..001F: 32 General Purpose Register (R0..R16)

von André K. (freakazoid)


Lesenswert?

Ja, geht. Der AVR-GCC macht das auch, wenn er keine Codeoptimierung
machen soll.

von AVR Coder (Gast)


Lesenswert?

Und noch ne Frage hinterher:

wie kann man bei 128kB Flash auf die oberen 64k zugreifen? LPM erlaubt
ja nur Zugriff auf die unteren 64...

von crazy horse (Gast)


Lesenswert?

und auch der stack kann den bereich nutzen, aber funktioniert nicht
wirklich gut...

von AVR Coder (Gast)


Lesenswert?

Danke @André

von Rolf Magnus (Gast)


Lesenswert?

> Kann man dann auf die Register auch über den Speicher zugreifen?

"Über den Speicher" kann man so nicht sagen. in dem Bereich 0x00 bis
0x5F ist kein Speicher. Man kann auf die allgemeinen Register und die
I/O-Register aber tatsächlic so zugreifen, wie du meinst.

> lds r16,4 statt mov r16,r4 oder
> sts $2F,r16 statt out $F,r16?

Ja, das geht. Ist halt etwas langsamer, aber dafür kann man auch
indirekt zugreifen und damit einen Zeiger machen, der auch auf ein
Regiter zeigen kann.

> Oder wird der Bereich 0..5F aus dem regulären Adressbereich
> ausgeblendet?

Nein, denn sonst wäre ja die Angabe, daß da Register sind, ziemlich
nutzlos.

von Rolf Magnus (Gast)


Lesenswert?

> wie kann man bei 128kB Flash auf die oberen 64k zugreifen? LPM
> erlaubt ja nur Zugriff auf die unteren 64...

ELPM

von Werner B. (Gast)


Lesenswert?

... und "RAMPZ Register"

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.