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
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.