Forum: Mikrocontroller und Digitale Elektronik 64KB Problem beim Atmega2560


von Rolf P. (rolfp)


Lesenswert?

Beim Programmieren meines Selbstbau-Taschenrechners bin ich auf ein 
Problem gestossen wenn das Programm grösser als 64KB wird.
Offenbar werden jeweils der zweite und vierte 64KB-Block im Atmega2560 
vertauscht gebrannt. Und beim Zurücklesen werden ebenfalls zweiter und 
vierter Block vertauscht zurückgelesen. Somit merkt man es nicht sofort 
beim Flashen, sondern erst wenn dann das Programm abstürzt.
Zuerst dachte ich es sei klar ein Bug im avrdude, aber es könnte auch 
genau so gut ein Bug im Programmer (mySmartUSB MK3) sein.

Ich habe mal eine Homepage eingerichtet wo ich das Problem genauer 
beschreibe. Eine provisorische Umgehung des Problems habe ich auch schon 
gefunden:
http://www.rolfp.ch/elektronik/avr/mk3/avrdude64k-problem.html

Die Frage ist jetzt, wie kann ich herausfinden ob der Fehler im avrdude 
liegt oder doch im Programmer?
Hat vielleicht jemand mit einen andern Programmer, und/oder einem 
anderen Tool zum Flashen, schon das gleiche Problem festgestellt?
Das Problem taucht ja nicht nur auf wenn man ein grosses Programm 
geschrieben hat, sondern auch z.B. beim Programmieren eines Bootloaders, 
bzw beim Installieren eines Bootloaders.

Rolf

von Oliver J. (skriptkiddy)


Lesenswert?

Schon mal mit der Originalsoftware zum Programmer versucht?

Gruß Oliver

von Thomas E. (thomase)


Lesenswert?

Rolf Pfister schrieb:
> Hat vielleicht jemand mit einen andern Programmer,
Mit AVRISP oder JTAGICE aus AVR Studio heraus gibt es das Problem nicht.
Was stehen denn im Hexfile für Adressen?

mfg.

von Charly B. (charly)


Lesenswert?

moin Rolf & Co.

hatte ein ahenliches Problem. hatte ich auch, hab mit myavr
telefoniert und innerhalb von 2h hatte ich eine neue Soft
die zumindes im .bin format speichern konnte.
Vielleicht schreibst du mal an die Jungs von myavr, ich war
begeistert von dem Suport!

vlG
Charly

von Rolf P. (rolfp)


Lesenswert?

Oliver J. schrieb:
> Schon mal mit der Originalsoftware zum Programmer versucht?

Hatte gestern versucht auf einem alten Laptop wo noch windows-xp drauf 
ist. Habe es aber nicht geschafft das zu installieren. Aber ich will es 
ja sowieso nicht mit Windows betreiben, sondern mit Linux und eventuell 
unter MacOSX wo das gleiche Problem auftritt.

Charly B. schrieb:
> Vielleicht schreibst du mal an die Jungs von myavr, ich war
> begeistert von dem Suport!
>

Habe ich schon vor 1 oder 2 Wochen gemacht, aber bisher noch keine 
Antwort erhalten.

Thomas Eckmann schrieb:
> Mit AVRISP oder JTAGICE aus AVR Studio heraus gibt es das Problem nicht.
> Was stehen denn im Hexfile für Adressen?

Das Hex-File von meinem Testbeispiel "flashcheck.asm" sieht so aus:
1
:020000020000FC
2
:100000000FEF11E20DBF1EBF0FEF00930A0104B9FD
3
:1000100006E005B90E94350000930B0118D00BE5EE
4
:1000200005B90E94008000930B0111D00FE405B9BF
5
:100030000F94000000930B010AD006E605B90F9457
6
:10004000008000930B0103D002D001D0E1CF8F9349
7
:100050009F930F9306E980E093E80196F1F70A95E4
8
:0E006000D1F70F919F918F91089501E10895BE
9
:020000021000EC
10
:0400000002E208957B
11
:020000022000DC
12
:0400000003E3089579
13
:020000023000CC
14
:0400000004E4089577
15
:00000001FF

Ich bin mir ziemlich sicher dass das korrekt ist.

Rolf

von Rolf P. (rolfp)


Lesenswert?

Rolf Pfister schrieb:
> Oliver J. schrieb:
>> Schon mal mit der Originalsoftware zum Programmer versucht?
>
> Hatte gestern versucht auf einem alten Laptop wo noch windows-xp drauf

Habs nochmals probiert: jetzt geht das myAVR-ProgTool. Damit wird das 
Flash korrekt gelesen und geschrieben. Sogar das EEPROM scheint korrekt 
gelesen zu werden.
Aber nach den LEDs zu schliessen macht er das im "myMode". Es ist also 
immer noch unklar ob der Fehler im avrdude liegt oder doch im Programmer 
beim stk500v2 Modus.
Ich habe auch noch bei einem  "mysmartUSB light" die Firmware geupdatet 
und da ausser dem stk500v2 Modus noch den avr911 Modus ausprobiert. Beim 
avr911 modus ist das gelesene Flash total falsch. Im stk500v2 Modus 
verhält es sich gleich wie beim "mysmartUSB MK3". Also auch zweiter und 
vierter 64KB Block jeweils vertauscht.
Ich vermute mal dass der Fehler doch im avrdude liegt.

Rolf

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.