Nested Interrupts mit dem AT91SAM7X

OP #2423523
Lesenswert?
• ▲
▼
Ich bin gerade bei der Inbetriebnahme und Programmierung einer 
selbstentwickelten IO-Box (4 Europlatinen). Kern ist ein SAM7X512, 
dieser empfängt Kommandos über CAN und sendet aktuelle Eingangswerte der 
anderen Schnittstellen über CAN.

Ich verwende Keil µVision4 und ein J-Link zum Programmieren. Das 
Codeprojekt basiert auf einem Beispiel aus der Atmel at91lib.

Das Problem ist, dass sich der ARM aufhängt (Abort-Mode, Undefined 
Instruction Vector), wenn ich nested Interrupts verwenden möchte. Im 
angehängten Startup-File von Atmel ist eine Basis-Interruptroutine, mit 
der das eigentlich möglich sein sollte. Setze ich alle Interrupts auf 
die gleiche Priorität, funktioniert alles bestens. Das sagt mir, dass 
das Problem durch die nested Interrupts verursacht wird.

Beim Durchsteppen durch eine Interruptroutine ist mir aufgefallen, dass 
der ARM immer beim Rücksprung aus einer von der ISR aufgerufenen 
Funktion (statische Klassenmethode) in den Fehlermodus geht.

Mit den Stack-Größen habe ich schon etwas gespielt, aber ohne Effekt. 
Ich habe auch fast nur statische Variablen, der Stack sollte nicht so 
voll sein.
Im AT91.com-Forum hat man mir empfohlen, die Stackverwendung zu 
überprüfen, ich habe nur keine Ahnung wie ich den Stack mit einem 
Default füllen kann, geschweige denn wo im Adressbereich er sich 
befindet.

Kann mir jemand etwas auf die Sprünge helfen?
Angehängte Dateien:

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.