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 212<br />

Neuere Modelle der AVR Serie besitzen eine einstellbare<br />

brown-out detection. Diese versetzt den Prozessor bei gefährlichen<br />

Spannungszuständen in den Reset-Zustand.<br />

Auf der anderen Seite kann ein Aktivieren des brown-out bei<br />

mangelhafter Spannungsversorgung zu sporadischem reset des<br />

Programms führen.<br />

A.2 Stackfault<br />

Im RAM müssen sich statische Variable, lokale Variable und<br />

Rücksprungadressen den Platz teilen. Der Compiler füllt das<br />

RAM von unten <strong>mit</strong> statischen Variablen auf. Der Rest bleibt<br />

dem vom Runtime initialisierten Stack, der lokale Variable<br />

und Rücksprungadressen beherbergen muss. Leider ist der<br />

Aufruf von Unterprogrammen schwer, in vielen Fällen sogar<br />

grundsätzlich gar nicht, vorhersehbar. So kann es vorkommen,<br />

dass Stack und statische Variable sich überschreiben.<br />

Dies führt in der Regel zu sonderbarem Programmverhalten<br />

oder zum Programmabsturz. Ein Stackfault-Interrupt für eine<br />

kontrollierte Fehlerbehandlung wäre sehr wünschenswert.<br />

Als einfache Lösung kann man am Anfang jeder Funktion den<br />

Stackpointer überprüfen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!