AT91RM9200 undefined mode wird ausgelöst

OP #711212
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
Gast #711387
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

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