mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu ARM7 "Undefind Data Access Aboard"


Autor: ARM7TDMI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag.

Bei meiner Applikation mit einem LPC2148 kommt selten, aber doch
gelegentlich mal eine Data Access Abord Exception vor. Ich kann mir
erlauben bei unvorhersehbaren Exceptions einen Neustart durchzuführen.
Zuvor logge ich aber noch den Inhalt von R14 - 8 . Damit weiss ich
zwar die Adresse der Instruktion die den Zugriff ausführt, ich weiss
aber nicht auf welche Adresse.

Mein Frage ist nun, kann man diese Adresse zur Laufzeit (ohne Debugger)
herausbekommen um sie dann zu loggen ?

Vielleicht ein blöde Frage, aber ich trete im Moment auf der Stelle. Bei
Google scheine ich nicht das richtige Suchwort zu benutzen, denn da habe
ich jedenfalls nichts hilfreiches dazu gefunden.

Danke für sachdienliche Hinweise.

Gruss

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARM7TDMI schrieb:

> Mein Frage ist nun, kann man diese Adresse zur Laufzeit (ohne Debugger)
> herausbekommen um sie dann zu loggen ?

Ja. Befehl dekodieren und Adresse berechnen. Entweder machst du das im 
Abort-Handler, oder du gibst alle relevante Information aus, also alle 
Registerinhalte 0-15 und PSR, und machst es dann selbst. Der Befehl 
lässt sich zwar ggf. dem Dump entnehmen, sofern nicht im RAM, aber es 
schadet wohl nicht, auch die betreffenden Bytes auszugeben.

http://www.design-reuse.com/articles/exit/?id=1407...

Autor: ARM7TDMI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, wie soll ich das zur Laufzeit machen?

Hinterher geht es nicht mehr , weil ich die Registerinhalte ja nicht
mehr kenne. Selbst mein Debugger nutzt mir da nichts .

Wie gesagt, ich halte nicht an innerhalb des Exception Handlers, sondern
führe einen SW-Reset aus. Zuvor wird noch R14 - 8 auf die CD-Card mit
Uhrzeit und entsprechender Meldung geschrieben.

Meine naive Frage wäre (anders formuliert), ob es nicht irgendwo die
Adresse des fehlerhaften Datenzugriffes  gibt, die ich einfach so wie
die OPCODE Adresse noch mit loggen kann ?

Denke aber eher wohl nicht.


Gruss

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ARM7TDMI schrieb:

> oh, wie soll ich das zur Laufzeit machen?

Lies den verlinkten Text, dessen Autor hat das gemacht.

> Wie gesagt, ich halte nicht an innerhalb des Exception Handlers, sondern
> führe einen SW-Reset aus. Zuvor wird noch R14 - 8 auf die CD-Card mit
> Uhrzeit und entsprechender Meldung geschrieben.

Warum nur diese Register und nicht alle?

> Meine naive Frage wäre (anders formuliert), ob es nicht irgendwo die
> Adresse des fehlerhaften Datenzugriffes  gibt, die ich einfach so wie
> die OPCODE Adresse noch mit loggen kann ?

Beim ARM7 nicht, der Cortex-M3 hat das jedoch.

Autor: ARM7TDMI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke, werde mir das mal ansehen. Ist ja eine etwas längere 
Abhandlung.

Zur Info : R14 - 8 soll nur heissen Registerinhalt von R14 minus 8.
Diese Adresse ist dann die Adresse des Codes der die Exception auslöst.
Alle anderen Register haben (denke ich) Inhalte die möglicherweise
nichts mehr dem Code zu tun haben der das Problem verursacht. Schon
alleine deswegen, weil ich ja Ausgaben machen muss (will). Könnte
also nicht hilfreich sein.

Danke jedenfalls nochmals für den Tip. Vielleicht hilft er ja weiter.

Gruss

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.