AVR32, Interrupt Probleme

Gast #3849550
Lesenswert?

Hallo

Ich hab vor kurzem angefangen mit einem EVK1101 zu experimentieren. Das 
Board hat einen AT32UC3B0256. Da ich auf Ubuntu arbeite und das 
Atmel-Studio bei mir nicht zu laufen scheint verwende ich stattdessen 
ein makefile und habe mir die toolchain selbst aus den Fragmenten die 
man von ATMEL bekommt zusammengeschustert.

Vieles scheint auch schon ganz gut zu laufen, allerdings bei den 
Interrupts scheint es noch zu haken. Ich habe versucht das Problem auf 
ein Minimalbeispiel einzugrenzen (main.c im Anhang).

Ich verwende den USART-Interrupt um Zeichen vom PC zu empfangen und 
gleich wieder zurück zu senden. Das erste Zeichen wird auch empfangen 
und erfolgreich zurück gesendet, aber dann kein weiteres mehr. Außerdem 
scheint das Programm ab dann nicht mehr weiter zu laufen (das erkennt 
man daran, dass auch das LED-Blinken im Hauptprogramm nicht mehr 
funktioniert.)

Ich vermute daher, dass irgendetwas beim Rücksprung aus dem Interrupt 
nicht richtig funktioniert und die CPU sich irgendwo "verrennt" statt 
beim Hauptprogramm fortzusetzen. Dann hilft wohl nur mehr ein Reset.

Im Anhang noch das Makefile sowie die Dateien aus dem Ordner INTC, also 
aus der ATMEL-Bibliothek für den Interrupt-Controller.

Die exception.S musste ich etwas modifizieren, da sie bei mir sonst 
nicht kompilieren wollte, aber im Wesentlichen hab ich nur ein paar 
Makros durch ihre tatsächlichen Werte ersetzt.

Das Paradoxe ist, dass dieses Beispiel bei mir schon einmal funktioniert 
hat. Als ich dann ein größeres Projekt draus machen wollte funktionierte 
das aber nicht mehr und das Zurücksteigen auf das Minimalprogramm 
funktionierte dann auch nicht mehr. Ich weiß nicht was ich vorher anders 
gemacht habe...

Vielen Dank schon mal, mfg Fritz
Angehängte Dateien:
Gast #3849665
Lesenswert?

Hmm an den Fuses hab ich nichts verändert. Soweit ich bis jetzt erkennen 
konnte haben die ja auch nichts mit den Interrupts zu tun.

Watchdog sollte auch ausgeschaltet sein. Hab ihn zumindest nicht 
eingeschaltet. Und normales LED Blinken geht ja, nur der Interrupt 
nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren