Gast
#176669
Hallo, laut Dokumentation werden beim Übergang vom User in den IRQ Mode die Register R13 und R14 durch R13_irq und R14_irq ersetzt. Wie gelange ich nun an den Inhalt von R13 und R14? MfG Jens
|
Anzeige
|
Registerzugriffe beim ARM7
Gast
#176669
Hallo, laut Dokumentation werden beim Übergang vom User in den IRQ Mode die Register R13 und R14 durch R13_irq und R14_irq ersetzt. Wie gelange ich nun an den Inhalt von R13 und R14? MfG Jens
Gast
#176670
Eine Variante vom LDM kommt da ran.
Gast
#176671
Laut Assembler Manual gibt es im LDR Befehl keine Unterscheidung zwischen R13 und R13_irq, jedenfalls habe ich keine gefunden. Eine nähere Erläuterungen wäre also hilfreich. Im konkreten Fall sind die Register R13, R14 "nicht sichtbar". Die Adressierung über LDM ergibt nur Zugriffe auf R13_irg, R14_irq. Alternativ habe ich die Modebits im CPSR manuell zurückgesetzt (also IRQ Mode verlassen) und konnte dann auf R13, R14 zugreifen. Anschließend wird IRQ wieder eingestellt und die IRQ-Routine regulär beendet. Sollte diese "Hammer-Methode" die einzige Variante sein? MfG Jens
Gast
#176672
In meiner Doku vom ARM steht drin, dass der LDM (nicht LDR!) Befehl eine Bit hat, das im System-Mode eine andere Funktion hat als im User-Mode. Im System-Mode kommt man damit an die User-Mode register ran. Die Doku ist zwar schon etwas älter (ARM3) aber in der aktuellen Quickref hab ich es auch wiedergefunden. Syntax war glaub ich mit "^" hintendran.
Gast
#176673
Danke, das ist es wahrscheinlich. ... beim Programmieren von dem Ding kriegt man ja 'n Knick in die Rübe... Jens Antwort schreiben |
Anzeige
|