Seite 1 von 1

Zu Aufgabe 8 (LED-Interrupt)

Verfasst: 1. Feb 2007 18:33
von Kalle
Hi!
Sehe ich hier 2 Fehler, oder bin ich falsch?

In der 10.Zeile des Programms wird das Status-Register für die "eigentliche" Interruptroutine IRQHANDLE im Stack kopiert. In dieser Kopie des SR ist das S-Bit auf 0! Durch den Aufruf RTE innerhalb von IRQHANDLE haben wir danach in LEDOFF nur noch normale USER-Rechte. Wir schreiben auf den falschen Stack, und probieren am Ende mit RTE einen Super-User-Befehel auszuführen.

Außerdem werden in Zeile 11 die Statusbits kopiert. Dieses sind die unteren 8Bit des Halbwortes SR. Sie liegen deshalb 2Byte vom aktuellen Stackpointer entfernt der Zugriff sollte deshalb auf 2(SP) geschehen. Oder vermische ich hier etwas mit LittleEndian oder so?

Gruss Kalle