Zu Aufgabe 8 (LED-Interrupt)

Kalle
Erstie
Erstie
Beiträge: 16
Registriert: 20. Okt 2004 09:49
Kontaktdaten:

Zu Aufgabe 8 (LED-Interrupt)

Beitrag von Kalle » 1. Feb 2007 18:33

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

Zurück zu „Archiv“