AT91SAM9261, ständiger Spurious Interrupt

Gast #3204104
Lesenswert?
• ▲
▼
Hallo,

bei meinem AT91SAM9261 habe ich jetzt aktuell ein Micrium OS drauf und 
starte vor dem Systemstart den PIT.

Jetzt habe ich das Problem, dass ich permanent einen SpuriousInterrupt 
bekomme. Ich verstehe noch nicht so ganz, warum dieser kommt. In den 
Notes von Atmel habe ich gefunden: "By applying a pulse on an external 
interrupt signal programmed as level sensitive". Habt ihr hiermit schon 
mal Erfahrungen gesammelt und könnt mir eventuell Tipps geben, worauf 
ich gucken muss?

Danke Tom
Gast #3207909
Lesenswert?
• ▲
▼
Hallo Tom,
ich habe das Interrupt System eines AT91SAM9G10 aufgesetzt. Es gibt da 
ein paar kleine Probleme die bei der Initialisierung auftreten können. 
Somit können Spurious Interrupts auftreten, die es eigentlich gar nicht 
gibt. Der Handler für den Spurious Interrupt kann das aber bereinigen. 
Es ist schon etwas her und ich muss in meinen Unterlagen nochmals 
nachlesen.
Vermutlich liegt es aber am Interrupt Handler deines Micrium OS, das den 
Interrupt Vector nicht kennt und einfach löscht bzw. ignoriert.

Gruß Sascha
Gast #3211397
Lesenswert?
• ▲
▼
Hallo Sascha,

war eine Weile nicht im Lande und konnte jetzt erst deinen Post lesen.

Danke für die Antwort. Ich glaube schon, dass es mit dem OS und dessen 
InterruptHandler zusammenhängt. Ich weiß derzeit halt nur noch nicht, 
wodurch die Spurious ausgelöst wird. Irgendwo habe ich auch gelesen, 
dass er durch den Core getriggert wird, wenn dieser einen neuen 
Interrupt bekommt, bevor der alte ordentlich abgearbeitet wurde. Werde 
mal ein wenig mehr Zeit mit debuggen verbringen müssen.

Danke Tom
Gast #3211421
Lesenswert?
• ▲
▼
>Vermutlich liegt es aber am Interrupt Handler deines Micrium OS,

Würde mich wundern.

Abschickt wird er vom Prozessor, obwohl er das nicht sollte. Ob das 
System (OS) nun darauf vorbereitet ist oder nicht ist eine andere Sache.
#3211450
Lesenswert?
• ▲
▼
Hallo Tom,
ich hatte mal ein ähnliches Problem mit einem AT91SAM7X256. Das Problem 
ist aufgetreten, wenn eine externe Interruptquelle disabled wird und 
zeitgleich dieser Interrupt noch pending ist bzw. im selben Moment wird. 
Ein clear des betreffenden Interrupt nach dem disablen bei gesperrten 
Irqs hat damals geholfen.

Gruß
Stefan

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.