Forum: Compiler & IDEs keyword: '_at_' für GNU C compiler


von Stefan (Gast)


Lesenswert?

Hallo!

ich bin schon letzte Woche auf das keyword '_at_' gestoßen, das es 
ermöglicht Variablen an einer bestimmten Speicheradresse abzulegen.
Bei bestimmten compilern sieht das nämlich so aus:

const unsigned char test at 0x1000;

soweit ich verstanden hab wird dann die Variable 'test' an der absoluten 
Speicherstelle 0x1000 abgelegt.

Dazu meine Frage:
Ich benütze den GNU C Compiler, der scheint das keyword '_at_' nicht zu 
kennen. wie kann man das Problem bei diesem compiler lösen?
gibts da ein anderes keyword?
Hat jemand schon mal sowas gemacht?

DANKE im voraus!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das geht beim gcc nicht mit diesem (im übrigen nicht standardisierten) 
Mechanismus; stattdessen sind Linkerskripte zu verwenden. Näheres 
darüber wird wohl hier Beitrag "Re: Ein paar Fragen zum ARM LPC2106" 
diskutiert.

von Stefan (Gast)


Lesenswert?

hab mich da mal durchgeschmökert, klingt alles ziemlich kompliziert für 
jemanden der noch nicht allzuviel Programmiererfahrung hat.
Kann mir da jemand bitte weiterhelfen?
wie muss ich das Linkerskript editieren dass eine Variable im Flash 
abgelegt wird?

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


Lesenswert?

Man kann keine Variablen im Flash anlegen: der ist naturgemäß
read-only und eine "Variable" per definitionem etwas, was man
ändern kann, sonst wäre es eine Konstante.

Aber wenn es dir darum geht, bestimmte Daten im Flash hinterlegen
zu lassen, dann schau dir mal PROGMEM an.  Sollte im Tutorial
ausreichend erläutert sein.

von Stefan (Gast)


Lesenswert?

sorry, war ein wenig knapp erläutert.
wie du aber richtig erkannt hast, möchte ich daten im Flash hinterlegen, 
die auch nach ausschalten meines Eval-Boardes gespeichert bleiben.

soviel ich aber gelesen hab ist PROGMEM für AVR Mikrocontroller, ich 
nutze einen ARM7 (LPC2119) von Philips!

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


Lesenswert?

> ich nutze einen ARM7 (LPC2119) von Philips!

Hmm, das hättest du vielleicht gleich schreiben sollen.

Sorry, da habe ich keine Ahnung, wie dort der Flash geschrieben
wird.

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.