PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bootloader für Atmega2561



Pinto
10.03.2009, 10:07
Hallo Allerseits

Seit Tagen experimentiere ich den Bootloader von MCS und von Microsyl für einen Atmega2561 controller zur programmieren, doch leider ohne Erfolg
Hat jemand von Euch schon einen Bootloader für diesen controller programmiert?

Habe schon in einen anderen Forum danach gefragt aber vielleicht finde ich hier die gesuchte Antwort.

Danke für jede Hilfe
Grüsse
Sato

repi64
10.03.2009, 22:08
Den Megaload habe ich schon öfters für die kleineren ATMegas verwendet. Der M2561 steht auch dort unter den unterstützten Chips.
Hast du die Configbits entsprechend gesetzt und dem ICC Compiler gesagt, dass du einen Bootloader erzeugen möchtest?

Pinto
11.03.2009, 10:07
Hallo repi64
Danke für den Feedback
Es ist meinen ersten Mal das ich ein bootloader benutzen möchte, darum mache ich bestimmt was falsch.
Welche Config bits meinst Du?
Auf den AVR-OSP II habe ich die bits markiert
Serial program downloading enable
Boot Flash section size=1024 words Boot start address=$1FC00
und den externen oscilator 1600000 Mhz
Den Boot Reset vector Enable (default address=$0000 habe ich NICHT aktiviert, soll auch nicht, oder Irre ich mich?
Schau bitte den screenshoot im Anhang

Mit den ICCV7 compiler habe ich den projekt compiliert mit der änderungen im Bootloader den ich benötige, auch im Anhang den projekt
wo man es sehen kann.
Wäre Nett wenn es Dir anschauen könnntest, eventuell mache ich da was Falsch

Was ich nicht verstehe sind die Addressen die das MCS Bootloader und der von Microsyl generieren, sind total verschieden. Wenn ich den Bootloader von Microsyl in den Chip programmieren will und im AVR-Osp II den Use range auf den Anfangswert 0x1FCC Endwert 1FFFF eingebe, bricht das programm ab mit der Meldung das der range beriech ausserhalb der Grenze ist.

Danke
Viele Grüsse
Sato

Pinto
11.03.2009, 10:13
Sorry, Anhang vergessen

repi64
11.03.2009, 19:08
Zum AVR-OSP II kann ich dir nichts sagen. Ich flashe den Bootloader mit einem Galep 4 Programmer.
Ich denke, du hast dir diese Anleitung angeschaut.
http://www.microsyl.com/megaload/MegaloadforAVR.pdf
In den ICC Options musst du die Größe des Bootloaders auf mindestens 512Byte einstellen (ich habe wahrscheinlich 1024Byte verwendet). Die gleiche Größe setzt du auch für die BOOTSZ Bits in deinem Programmer.
Ebenfalls muss BOOTRST gesetzt sein! und die CKSEL Bits müssen zu deinem externen Takt passen (wahrscheinlich 1111, ohne es nachzuschauen).
Deine Anpassung in dem Projekt sehen OK aus. Benutzt du wirklich den UART1 und nicht 0?
Je nach dem wie dein Programmer es darstellt, solte der Loader ganz hinten im Flash stehen. Die vorderen Adressen werden nachher mit deinem Programm gefüllt.
Wenn ich in meinem Programmer das Hexfile öffne, wird es direkt an die richtige Stelle gesetzt. Da muss ich nichts mit Boot start address=$1FC00 einstellen, da das Hexfile die "Position" beinhaltet an der der Loader anfängt.

Gento
11.03.2009, 19:48
Der Bootloader von MCS hat 2KByte.(1K Word)
Das muß in den Fuses auch eingestellt werden.

Gento