Forum: Mikrocontroller und Digitale Elektronik IAP Problem beim LPC2138


von roty (Gast)


Lesenswert?

Hallo,

hat jemand schon erfolgreich IAP beim LPC2138 benutzt ?

Ich habe mir (fast) alle Programmbeispiele aus dem WEB besorgt,
keines davon funktioniert aber bei mir. Ich weiss dass der
Fehler irgendwie bei mir liegt, aber wo!

Der LPC2138 reagiert beim Aufruf der IAP_LOCATION  (0x7FFFFFF1)
immer mit der Exception 0x0c (Prefetch abort).

Hat jemand schon mal ähnliche Erfahrungen gemacht und weiss woran
es liegen könnte ?

Danke

von mthomas (Gast)


Lesenswert?

Welche Werkzeuge? IAP-Funktion ist "Thumb-code". Falls restlicher Code
in "ARM" eventuell Aufruf mit kleinem Inline-Assembler-wrapper
versehen und darin die IAP-Funktion mit "BX" aufrufen.
Zumindest auf LPC2106 schon mal so gemacht mit gnu-Toolchain, auf
LPC2138 noch nicht ausprobiert.
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/glcd_dcf77/index.html
Dateien: iap.h, iap.c, iap_asm.C

von roty (Gast)


Lesenswert?

Vielen Dank für die Hilfe.

Es klappt jetzt. Der entscheidende Punkt ist "BX rx"!
Wenn der Compiler die HLL Zeile

              iap_entry(command,result);

in
                ...
              MOV PC,rx
                ...

umsetzt, geht es schief und eine Exception "Prefetch abort" ist die
Folge. Diese Verhalten kann eindeutig reproduziert werden.
Villeicht hilft dieses auch anderen die mit ähnliche Problemen zu
kämpfen haben.

Danke nochmals.

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.