Hi, Mir bereitet gerade ein Bootloader kopfzerbrechen. Habe mir diesen Thread schon durchgelesen und die Lösungsvorschläge ausprobiert: Beitrag "AVR Bootloader: Sprung zur Applikation" Ich verwende einen AT90CAN128, Kommunikation über RS485 Schnittstelle und AVR-GCC 4.0.2 und avrlibc 1.4.4 . Nach dem Programmieren überprüft der AVR die Checksumme der geschriebenen Daten und speichert diese am Ende des Flashs. Die Boot-Reset Fuse ist auf Bootloader Section programmiert. Sommit wird immer zuerst der Bootloader gestartet. Dieser kontrolliert die Checksumme und startet bei Erfolg das Programm. So wenn ich jetzt nach dem Programmieren aus dem Bootloader in die Application springen will (IVSEL Bit entsprechend gesetzt) hängt sich der AVR irgendwo auf (habe keinen Debugger zur Hand, kann also nicht sagen was genau er macht). Wenn ich allerdings den AVR per Reset-Pin resete wird die Application erfolgreich gestartet. Habe schon probiert alle verwendeten Register zu löschen, Interrupts zu deaktiviern usw. bevor ich zurück springe; allerdings ohne Erfolg. Woran kann das noch liegen, mir gehen langsam die Ideen aus... Danke, Martin
Die Applikation ist ja auf 0x0000. Daher sollte ein Sprung nach 0x0000 genuegen.
Eben genügt der Sprung nach 0x0000 nur wenn ich ihn nach einem Reset mache, jedoch nicht wenn ich mit der selben Funktion nach dem Programmieren mache.
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.