mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91RM9200 undefined mode wird ausgelöst


Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann eigentlich ein undefined mode ausgelöst werden?

Bis jetzt weiß ich nur, dass das der Fall ist, wenn der Prozessor eine 
Instruktion bekommt, die er nicht kennt? Aber was kann so eine 
Instruktion / unbekannter Befehl sein?

Dann wenn man mit Floating-Points arbeitet, obwohl kein Koprozessor zur 
Verfügung steht, der dies verarbeiten kann?

Habe gerade das Problem, dass eine solche undefined instruktion 
auftritt, wenn über die Ethernet-Schnittstelle Pakete empfangen werden. 
Es gibt ein Register, in dem die Adresse von einem Pointer angegeben 
wird, wo die Pakete per DMA hingespeichert werden sollen (nämlich in den 
externen SDRAM). Ich nehme an, dass erst anschließend der Interrupt 
ausgelöst wird, dass neue Pakete vorhanden sind - auf jeden Fall wird 
dieser Interrupt nicht mehr ausgelöst wegen der undefined instruktion.

Arbeiten tu ich mit dem AT91RM9200 Prozessor. Solange keine Pakete 
ankommen, läuft das Programm ohne Fehler. Daraus würde ich vermuten, 
dass der Programmcode auf jeden Fall die Ethernet Schnittstelle 
freischaltet so dass Pakete empfangen werden können.

Wenn der SDRAM / oder die Speicheradresse für die empfangenen Pakete 
nicht stimmen würde oder icht vorhanden sein würde, würde doch ein Data 
Abort und keine undefined instruktion ausgelöst werden, oder?

Vielleicht hat jmd. von euch einen Hint warum so eine undefined 
Instruktion ausgelöst werden könnte.

Bernd

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Vielleicht hat jmd. von euch einen Hint warum so eine undefined
>Instruktion ausgelöst werden könnte.

Funktionspointer, der zwar auf gültigen Speicher zeigt, an dessen
Stelle aber kein gültiger Code steht.

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.