Hallo, ich möchte aus der laufenden Applikation in den Bootloader springen, leider hängt sich das Programm auf. Der Bootloader ist getestet und läuft. HW: Atmega128 So sieht mein Aufruf aus: cli(); asm volatile("jmp 0x1FC00"); über Watchdog und reset funktioniert es, aber mit direktem Sprung nicht, habt Ihr einen Tip? Gruß michael
ein WD reset ist ein reset-vorgang, der alle register in den reset-zustand setzt. das macht dein jump nicht und da liegt wohl der hase im pfeffer.
Michael M. schrieb: > ein WD reset ist ein reset-vorgang, der alle register in den > reset-zustand setzt. > das macht dein jump nicht und da liegt wohl der hase im pfeffer. Ich denke es ist wieder mal das leidige Thema Word-Adre3ssierung versus Byte-Adressierung
Karl heinz Buchegger schrieb: > Ich denke es ist wieder mal das leidige Thema > Word-Adre3ssierung versus Byte-Adressierung Ne, ist es hier mal nicht. ;-)
1 | asm volatile("jmp 0x1FC00"); |
2 | cc: 0c 94 00 fe jmp 0x1fc00 |
Ich tippe auch darauf, dass im Bootloader irgendein Hardware-Init schief läuft, weil in den Registern nicht die erwarteten Default-Werte stehen. Oder 1fc00 (fe00) ist schlicht die falsche Adresse, weil die Fuses nicht stimmen.
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.