Forum: Compiler & IDEs variable im externen RAM


von Matthias (Gast)


Lesenswert?

Hallo Leute..

Ich habe an einem ATmega128 externes RAM verbaut.
Wie kann ich jetzt dem Compiler mitteilen, dass die Variable Zb
uint8_t  puffer[4096];
im externen RAM angelegt werden soll?
Ist es möglich, dem Compiler zu sagen, ab welcher Adresse (diese) 
Variable(n) im Speicher stehen sollen?

Danke im Voraus

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


Lesenswert?

Wenn du das willst, warum schreibst du dann nicht gleich einfach
1
uint8_t *puffer = (uint8_t *)0x8001100;
?

Ansonsten, wie heißt's so schön: RTFDoc.  In der avr-libc-Doku sind
diverse Varianten beschrieben.  Mfile hat einiges davon noch in
Menüs zur einfachen Auswahl gefasst.

von Matthias (Gast)


Lesenswert?

aha.
und wie kann ich da jetzt drauf zugreifen, statt:
uint8_t   8_bit_variable;
uint16_t  index;          // 0..4095
..
8bit_variable = puffer [ index ];
jetzt:
8bit_variable = *(puffer+index);

?? stimmt das?

von Matthias (Gast)


Lesenswert?

aha.
und wie kann ich da jetzt drauf zugreifen, statt:
8bit_variable = puffer [ index ];
jetzt:

uint8_t   8_bit_variable;
uint16_t  index;          // 0..4095
..

8bit_variable = *(puffer+index);

?? stimmt das?

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


Lesenswert?

Matthias wrote:

> und wie kann ich da jetzt drauf zugreifen, statt:

Genauso wie auf das von dir geplante Array...

> 8bit_variable = puffer [ index ];

Also so zum Beispiel.

> 8bit_variable = *(puffer+index);

Das ist eine zulässige, aber überaus umständlich anmutende äquivalente
Schreibweise von Obigem.

von Matthias (Gast)


Lesenswert?

Ok. vielen Dank Jörg!

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.