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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.