Forum: Mikrocontroller und Digitale Elektronik Bootlaoder - Sprung zur Application


von Martin (Gast)


Lesenswert?

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

von aha (Gast)


Lesenswert?

Die Applikation ist ja auf 0x0000. Daher sollte ein Sprung nach 0x0000 
genuegen.

von Martin (Gast)


Lesenswert?

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