c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Probleme mit dem Bootloader

Absender: Thomas Kregelin
Datum: Do, 18.10.2007 22:57:39
In-reply-to: <2CD3D281-AE62-4FBB-8419-C3EBB7DAFCE9@xxxxxxxxxxxxxxx>
References: <46F96285.8020005@xxxxxx> <2CD3D281-AE62-4FBB-8419-C3EBB7DAFCE9@xxxxxxxxxxxxxxx>


Hallo Werner.

ich kenne dieses Problem

Mir hat folgendes geholfen:

Suche die Funktion *jump_to_app* in *bootloader.c*

und ersetze diese Funktion durch:

*static void __attribute__ ((always_inline)) jump_to_app(void){
// setze Interrupt Vector Start address auf 0x0002
#ifdef __AVR_ATmega644__
MCUCR = 0x01;
MCUCR = 0x00;
#else
GICR = 0x01;
GICR = 0x00;
#endif

asm("jmp 0x0000"); // Run application code
}*

Mit dieser Modifikation wird sichergestellt, dass der Interruptvektor auf Adresse 0x0002 gesetzt wird. Ich vermute, dass es sonst zu einer Endlosschleife kommen kann, in der sich der Bootloader ständig selbst aufruft.



Timo Sandmann schrieb:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo,

Am 25.09.2007 um 21:33 schrieb Mopsos:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo,

Mein ct-Bot vergisst anscheinend Daten. Atmega32 ist mit den bootloader
fuses versehen, und Linker-flags sind richtig gesetzt. Ich übertrage
also über den mp3 isp /dev/parport0 die mit #define BOOTLOADER_AVAILABLE
übersetzte .HEX Datei.

/usr/bin/avrdude -p m32 -c stk200 -P /dev/parport0 -e -U
flash:w:${workspace_loc:/${resource_path}}:i

Und darauf die .eep Datei mit:

/usr/bin/avrdude -p m32 -c stk200 -P /dev/parport0 -U
eeprom:w:${workspace_loc:/${resource_path}}:i -u

Dann kann ich wunderbar mit ct-Sim Fernsteuerung mit dem Bot arbeiten.
Schalte ich aber den bot aus, und kurze Zeit später wieder an, bleibt
das Display 2 Balken an, Bot reagiert weder auf ct-Sim noch auf das
installierte Applet. Erst nachdem ich mit bootloader wieder über den ISP
flashe ist der bot wieder erreichbar.

Ich vermute das liegt daran dass der usb2bot Adapter am Bot angesteckt
ist und der Schalter auf "usb2bot" steht. Wenn man dann mit dem Sim
rumwurschtelt und den Bot (bei eingeschaltetem Sim) ausschaltet und
danach wieder einschaltet, der Bootloader Daten vom Sim als neues Image
interpretiert und so mist in den Flash schreibt.
Kann mich da jemand bestätigen oder korrigieren?

dass der Bootloader Daten vom Sim als Start-Code interpretiert (wir können das Bootloader-Protokoll ja nicht beeinflussen, wenn wir zu avrdude kompatibel sein wollen) und der Bot nicht bootet kann schon sein, aber dass er dann das Flash löscht oder neu beschreibt, kann ich mir eigentlich nicht vorstellen.

Gruß Timo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iD8DBQFG+ntvDH/BX4067fIRAnT/AKCUla9utRKvLWVRvvkVpV+H0BlB+wCffs2S
z603qQUezoWkXfK4A/MI6JU=
=5Frr
-----END PGP SIGNATURE-----

_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler