Forum: Mikrocontroller und Digitale Elektronik ATmega2560 Bootloader Problem


von Michael G. (m1tch3l)


Lesenswert?

Hallo zusammen,

ich habe ein custom ATmega2560 Board und bekomme den Bootloader nicht 
zum laufen. Verwendet wird der [[AVR Bootloader in C - eine einfache 
Anleitung]] (Der "echte" Bootloader für Programme > 64k).
- Die Linkereinstellung habe ich mit -Ttext=0x3E000 angepasst.
- Compiler Optimization: Optimize for size (-Os)
- Boot-Fuses: BOOTSZ0=0, BOOTSZ1=0, BOOTRST=1
- Die einzige Änderung ist, dass ich die F_CPU mit 14745600 angepasst 
habe.
- Den gleichen Bootloader verwende ich bei einem ATmega644 und 
ATmega168PA erfolgreich.
- Als Software nutze ich Atmel Studio 7 (Version: 7.0.2397).

Flashe ich nun den Code auf den Microcontroller, bekomme ich keine 
Ausgaben. Hier sollte "Hallo hier ist der echte Bootloader\n\r" 
ausgegeben werden.

Am Ende des Artikels AVR Bootloader in C - eine einfache Anleitung 
(Der "echte" Bootloader für Programme > 64k) steht, dass es zu Fehlern 
mit neueren Compiler bei einer Flashgröße von über 64K kommen kann. 
Jedoch habe ich nicht die Optimierungsoption "-fno-jump-tables" 
gefunden. Vielleicht kann das auch noch der Fehler sein.

Ich freue mich von Euch zu hören und vielleicht habt Ihr ja einen Tipp 
für mich.

Viele Grüße
Michael

von jo mei (Gast)


Lesenswert?

Michael G. schrieb:
> Ich freue mich von Euch zu hören und vielleicht habt Ihr ja einen Tipp
> für mich.

In jeder mitgelieferten Arduino-IDE gibt es eine Sammlung von
Bootloadern, da ist auch für dich der richtige dabei.

Es sei denn du brauchst unbedingt den Kick deinen eigenen
Bootloader geschrieben und compiliert zu haben, dann kann und
will ich dir nicht helfen.

Es gibt aber durchaus interessantere Betätigungsfelder als das
eines Bootloaders für einen Mikrocontroller. Und man kramt
dann auch nicht ewig in den Abgründen der Gründung eines
Projekts herum.

von Oliver S. (oliverso)


Lesenswert?

Falls du AVRDude zum flashen benutzt, klappt das nicht. Der hat einen 
Bug, und kann nur bis 128kB flashen. Das gilt auch für die Version, die 
mit der Arduino-Version mitgeliefert wird.

Oliver

von Michael G. (m1tch3l)


Lesenswert?

Vielen Dank für deine Antwort jo mei.

Ich habe selber Programme geschrieben, um über den Bootloader einfach 
den Code updaten zu können und würde diese auch gerne weiter verwenden, 
da es mit anderen Microcontrollern bisher sehr gut klappt.

Da der Bootloader aus diesem Forum kommt, kann es ja sein, dass schon 
jemand anderes diesen Fehler erhalten hat und somit mir helfen könnte. 
Vielleicht ist auch nur eine Einstellung falsch gewählt. Ansonsten 
müsste ich für meine anderen Projekte die Bootloader ebenfalls neu 
aufsetzen und die Software auch ändern.

von Michael G. (m1tch3l)


Lesenswert?

Hallo Oliver,

vielen Dank für deinen Hinweis. Kennst du eventuell eine Alternative, 
mit der es klappen sollte?

Viele Grüße
Michael

von Oliver S. (oliverso)


Lesenswert?

Jedes andere Programmiertool, das mit deinem ungenannten 
Programmieradapter klar kommt.

Oliver

von jo mei (Gast)


Lesenswert?

Oliver S. schrieb:
> das mit deinem ungenannten Programmieradapter klar kommt.

Sein "ungenannter Programmieradapter" heisst serielle Schnittstelle.

von Michael G. (m1tch3l)


Lesenswert?

Als Programmieradapter habe ich einen Atmel-ICE und einen AVRISP mkII.

Als Programmiertool nutze ich bisher das Atmel Studio, ohne weitere 
eingebundenen Tools.

von Einer K. (Gast)


Lesenswert?

Oliver S. schrieb:
> Falls du AVRDude zum flashen benutzt, klappt das nicht. Der hat
> einen
> Bug, und kann nur bis 128kB flashen. Das gilt auch für die Version, die
> mit der Arduino-Version mitgeliefert wird.
>
> Oliver

Das ist ja verwunderlich...
Nein: Du siehst mich völlig verblüfft!

Denn meine ATMega2560 kann ich durchaus mit AVRdude und dem Atmel ICE 
flashen.
Auch den Bootloader.

Ebenso mit dem "Arduino as ISP" und AVRdude. Keine Probleme.

Mit dem USBasp allerdings nicht. Der hat in allen Versionen da einen 
Bug. Von Fischl bis Chinavarianten.
Irgendwo gibts eine *.hex, welche den Bug nicht hat.

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.