LPC23xx Prefetch Abort Interrupt

Gast #1103961
Lesenswert?

Ich habe für den LPC2368 ein sehr umfangreiches Programm geschrieben, 
das auch viele Interrupts benutzt.
Immer bei einem größeren Datenverkehr (viele Interrupts) "stürzt" die 
CPU ab und hängt im "PAbt_Handler" Interrupt.
Im LR Register steht 0x20000048, aber da ist doch kein Flash?!?

In der ARM Doku steht "prefetched instruction is invalid..."

Was heist das?
Und wie kann ich das diagnostizieren, welcher SW-Teil hier anfängt zu 
spinnen?

Also bei sehr geringem Datenverkehr funktioniert alles, erst bei mehr 
Daten kommt irgendwas durcheinander.

Die Interrupts die kommen sind CAN und UART. Ich möchte ungern die 
Interrupt-Routinen umbauen und als Task laufen lassen.

Vielen Dank für eure Hilfe.
Gast #1103988
Lesenswert?

>Im LR Register steht 0x20000048, aber da ist doch kein Flash?!?

Na genau deshalb kommt doch der Abort!

Du hast dich irgendwo verpointert, z.b. durch einen Überlauf wenn
zuviele Daten kommen, und schon krachts.
Gast #1104001
Lesenswert?

Ich mache nichts "manuell" mit Stack oder in Assembler, das überlasse 
ich alles dem GCC.

Ich hab jetzt mal allen interrupts die gleiche Prio gegeben. Jetzt 
scheint der Fehler nicht mehr auf zu tauchen.

Dennoch finde ich es merkwürdig warum da sowas überhaupt passiert.
Ein ungutes Gefühl hab ich immer noch.

(Ich hoffe blos, dass es den LPC1768 bald gibt, der Cortex ist in den 
Interrupts doch noch um Welten besser...)

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