Write Only Specifier?

12/12/2009 - 22:19 von Markus Wichmann | Report spam
Hi all,

ich versuche gerade hier, die Eigenarten eines speziellen
Microcontrollers in Quellcode festzuhalten, und hab dabei ein Problem
festgestellt:

Der Speicherbus dieses uC ist geteilt und geht zum Teil direkt in
Register periphàrer Einheiten. Manche dieser Register sind read only,
was ich dem Compiler dadurch signalisiere, dass die fraglichen Variablen
den Specifier "const volatile" erhalten. Manche sind read/write, die
bekommen nur ein volatile. Aber wie soll ich bitteschön dem Compiler
signalisieren, dass manche dieser Register write-only sind? Ich meine,
volatile ist schon mal klar: Ein Schreibvorgang dorthin muss auf jeden
Fall ausgeführt werden und darf nicht wegoptimiert werden (bloß weil
z.B. wenige Zeilen weiter unten wieder was anderes reingeschrieben
wird). Aber sonst? Kann ich dem Compiler überhaupt sagen, dass das
Auslesen des fraglichen Speichers irgendwas zurückliefert, das nicht
notwendigerweise das ist, was vorher reingeschrieben wurde, und in
keinem Fall irgendwas, mit dem der Programmierer oder der Compiler was
anfangen kann? Wenn ja, wie?

Tschö,
Markus
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.
 

Lesen sie die antworten

#1 Claus Reibenstein
12/12/2009 - 22:47 | Warnen spam
Markus Wichmann schrieb:

Aber wie soll ich bitteschön dem Compiler
signalisieren, dass manche dieser Register write-only sind?



In ISO-C gar nicht.

Ob Dein Compiler entsprechende Erweiterungen bietet, sollte im Handbuch
stehen. Hier sind sie off topic.

Gruß. Claus

Ähnliche fragen