AT91SAM7 Interrupt Nesting mit ctl_set_isr?

Gast #1891916
Lesenswert?
• ▲
▼
Hallo,

ich habe gelesen, dass es mit dem ARM7 bei verschachtelten Interrupts 
etwas anders gehandhabt wird und zum Teil umständlich Softwareroutinen 
dafür nötig sind.
Meine Frage ist nun, ob dies mit der Funktion ctl_set_isr Umngangen 
wird. Würde eine verschachtelung funktionieren wenn ich interrupts durch 
diese Funktion unterschiedliche Prioritäten zuweise?

Grüße, H.P.
Gast #1893422
Lesenswert?
• ▲
▼
Liegt wohl auch an der Entwicklungsumgebung / Bibliotheken.

Die (Haupt-)Besonderheit von ARMs bei nested Interrupts liegt an dem 
Designfehler, dass er nur dann erlaubt werden darf, wenn LR_irq nicht 
für Calls genutzt wird, weil dieser beim Nesting überschrieben wird. 
Also, erst Mode wechseln, dann Nesting erlauben.
#1893678
Lesenswert?
• ▲
▼
Der Target-spezifische Code von Crossworks für ARM7 sieht einen 
zentralen Interrupt-Handler vor, der abhängig von der Parametrisierung 
nested Interrupts zulässt, indem der notwendige Modeswitch dort 
durchgeführt und erst dann der VIC Vektor aufgerufen wird. In der ISR 
sind dadurch keine speziellen Vorkehrungen für Nesting erforderlich. 
Siehe beispielsweise packages/targets/ARM/VIC_irq_handler.s für manche 
NXP ARM7.
#1893926
Lesenswert?
• ▲
▼
http://www.13thmonkey.org/documentation/ARM/HAI.pdf
http://www.nxp.com/documents/application_note/AN10381.pdf

Beim ARM führt jeder Interrupt zu einer Zerstörung des vorherigen 
Inhalts von R14 des IRQ-Registerkontextes. Ein Konstruktionsfehler. Wenn 
ein unterbrechbarer IRQ-Handler in diesem Modus liefe, dann dürfte er 
folglich R14 nicht verwenden. Weil das bei darin enthaltenen 
Unterprogrammaufrufen etwas unpraktisch ist wechselt man statt dessen 
den Kontext um ein anderes R14 zu gewinnen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.