Forum: Mikrocontroller und Digitale Elektronik LPC23xx Prefetch Abort Interrupt


von Markus (Gast)


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.

von ARM-Fan (Gast)


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.

von Markus (Gast)


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...)

von ARM-Fan (Gast)


Lesenswert?

Dazu mußt du auch nichts "manuell" machen.

Angenommen du versaust einen Funktionspointer und schon kriegst du einen
Prefetch-Abort.

von Henry (Gast)


Lesenswert?

Vielleicht lasten die Interrups den Controller über 100 Prozent aus und 
der Stack rasselt in den Keller.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.