21.08.2012 Aufrufe

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ANHANG A. STOLPERSTEINE 213<br />

A.3 volatile<br />

Der gcc erkennt Code, der Variable nicht verändert. Mit eingeschalteter<br />

Optimierung (default ist -O1!) werden derartige<br />

Programmstücke wegoptimiert. Zum Beispiel bei Warteschleifen<br />

führt das zu unerwartetem Verhalten des Programms.<br />

Wird der gcc <strong>mit</strong> der Option -O0 aufgerufen, so ist die Optimierung<br />

ausgeschaltet. Um trotz Warteschleifen <strong>mit</strong> Optimierung<br />

arbeiten zu können, gibt es für betroffene Variablen die<br />

C-Anweisung ,,volatile”. Die Ur-Version von C kannte diese<br />

Anweisung übrigens noch nicht.<br />

A.4 Interrupts<br />

Wird in einem Interrupt behandelnden Programm der Interrupt<br />

wieder eingeschaltet, so führt ein weiterer Interrupt zur<br />

Unterbrechung des Interrupts. Derartige Programme müssen<br />

reentrant programmiert worden sein. So muss der Zugriff auf<br />

statische bzw. externe Variable über Semaphore gesichert werden.<br />

Da der Compiler Interrupts nicht nachvollziehen kann, müssen<br />

statische Variable, die innerhalb und außerhalb von Interrupts<br />

verwendet werden, als volatile deklariert werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!