LPC2468 Debug SFR und Interrupt Problem

OP #951922
Lesenswert?

Hallo zusammen,

ich arbeite mit dem LPC2468 auf einem Eval Board von Embedded Artists 
und habe folgende zwei Fragen.

1. Frage: Ich debugge mit Eclipce+OpenOCD+gdb. Da möchte ich mir den 
Speicherbereich der Special Function Register (0xE000 0000 - 0xFFFF 
FFFF) anschauen. Aber das funktioniert nicht. Wenn ich darauf zugreifen 
will, spielt der Debugger verrückt und stürzt ab. Wenn ich meinen Stack 
anschauen will (so um Adresse 0x4000 0000) funktioniert das problemlos. 
Ansosnsten ist mit dem Debugger auch alles supi. Kann es eventuell sein, 
dass der JTAG Controller nicht drauf zugreifen darf? Gibt es irgendeine 
Möglichkeit dass ich mir die SFRs anschauen kann, ohne sie in Variablen 
zu speichern?

2. Frage: Und die ist eigentlich viel interessanter! Ich möchte einen 
UART Interrupt verwenden. Ich habe alles nach den Codebeispielen von 
Keil eingerichtet. Außerdem habe ich selbstverständlich Funktionsaufrufe 
und ein paar einfache Anweisungen in meiner main-Endlosschleife. Nun zum 
Phänomen der Sache:
Egal wann der Interrupt physikalisch eintritt, wird die ISR erst beim 
nächsten Funktionaufruf aufgerufen. Das habe ich mit Hilfe meines 
Debugegrs heraus bekommen.
Wenn ich die Funktionsaufrufe herausnehme, muss erst zweimal ein 
Interrupt auftreten, bevor die ISR bedient wird. Die folgenden 
Interrupts werden dann einfach ignoriert.

Wie bekomme ich die Interruptbehandlung sicher aaufgebaut? Fehlt 
eventuell noch was im StartUp Script (liegt im Anhang) oder welche 
Register müssen beschrieben werden?

Vielen Dank schon mal für eure Hilfe im voraus
Eric
Angehängte Dateien:
OP #953430
Lesenswert?

Hallo nochmal,

sieht ja etwas mau aus!

Ich gebe mal noch ne kleine Hilfestellung. Ich habe mittlerweile 
herausgefunden, warum beim zweiten Interrupt nichts passiert. Und zwar 
wird beim Einsprung in die ISR das Global Interrupt disable Flag 
gesetzt, was auch soweit in Ordnung ist. Allerdings wird es beim 
verlassen nicht wieder gelöscht, so dass keine weiteren Interrupts 
auftreten können.

Wie kann ich dass beeinflussen? Wo muss ich was hin schreiben, damit 
dieses Flag wieder gelöscht wird???

Eric

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