Forum: Mikrocontroller und Digitale Elektronik Komisches Verhalten MC68000


von C. W. (chefkoch)


Lesenswert?

Hallo *,

mal ne Frage an die Freunde des guten alten MC68000:

Ich habe hier ein Gerät mit einem 68000 dessen Firmware ich 
disassembliert vorliegen habe. Die Firmware bietet die Möglichkeit über 
einen eingebauten Bootloader eigenen Code ins RAM zu laden und von dort 
auszuführen (es wird mit JSR an die angegeben Stelle gesprungen). Leider 
funktioniert das relativ leidlich bzw. habe ich so komische Effekte wie 
den folgenden.

Es existiert eine kleine Funktion im EPROM bei 0x4ad508 um das 
Statusregister ins RAM zu sichern:

004ad508 40 f9 00 11 34 9c   move       SR,(0x0011349c)

004ad50e 00 7c 07 00         ori        #0x700,SR

004ad512 4e 75               rts

Wenn ich diese Funktion mit JSR $4ad508 aufrufe stürzt das System ab. 
Baue ich die Funktion jedoch nach und rufe sie an der neuen Adresse auf 
funktioniert alles einwandfrei.

Was übersehe ich?

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

C. W. schrieb:

> Wenn ich diese Funktion mit JSR $4ad508 aufrufe stürzt das System ab.
> Baue ich die Funktion jedoch nach und rufe sie an der neuen Adresse auf
> funktioniert alles einwandfrei.

Konntest Du den ins RAM geladenen Code wieder erfolgreich zurücklesen?
Schreibt Dein Bootloader byte- oder wortweise?
Falls byteweise, ist das RAM im Zielbereich byteweise decodiert, also 
werden /UDS und /LDS ausgewertet?

Grüßle,
Volker

von Rbx (rcx)


Lesenswert?

C. W. schrieb:
> Baue ich die Funktion jedoch nach und rufe sie an der neuen Adresse auf
> funktioniert alles einwandfrei.

Weißt du was zu den Hintergründen über die Original Funktion?

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

C. W. schrieb:
> Was übersehe ich?

SR modifizieren nur im Supervisor-Mode

Im User Mode führt
ORI #...,SR
zu einer Privilege Violation Exception (Vector 8).

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.