Forum: Compiler & IDEs Konstanter Pointer/Array


von Benedikt (Gast)


Lesenswert?

Kann man in WinAVR ein Array an eine feste Adresse (externes SRAM)
legen, ohne einen Pointer verschwenden zu müssen ?
Dieser belegt 2 Bytes und muss extra geladen werden, wo mir doch eine
feste Adresse ausreichen würde.

Wie sage ich dem Compiler, dass z.B. das Array
werte[1024] bzw. der pointer werte auf Adresse 1024 zeigen soll, so
dass ich die Werte über werte[i] adressieren kann ?

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


Lesenswert?

Wenn der Zeiger eine Konstante ist, muss er keineswegs
extra geladen werden.  Der Compiler kann dann die für
ihn günstigste Implementierung auswählen.

Wenn du Variablen auf feste Adressen einfach binden
willst (ohne dich mit Linkerscripts oder sowas
rumärgern zu müssen), musst du wohl zu Ada wechseln.

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Ich habe mal ein Linkerscript um die section .extmem erweitert, das
müsste hier im GCC-Forum irgendwo rumfliegen.

Falls Du es nicht findest, kann ich das heute Abend nochmal hier
posten...

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.