Forum: Compiler & IDEs ATMega2560: Verify Fehler bei Flashen eines Hex-Files > 128 kByte


von Hartmut S. (haschi)


Lesenswert?

Hallo Forum,

ich habe hier schon sehr viel mitgelesen und gelernt, herzlichen Dank!

Jetzt möchte ich auf einen ATMega2560 mehr als 128 kByte Programm 
flashen (mit Audio-Daten). Ich habe verstanden, daß ich __flash oder 
__memx verwenden muß und habe damit die 64 kByte Hürde genommen.

1
static const unsigned long pcm0_length=32766;
2
 
3
static const __memx unsigned char pcm0_samples[] ={
4
139,146,141,143,144,145,142,138,137,136,137,137,136,
5
...
6
};
7
8
static const unsigned long pcm1_length=32766;
9
10
static const __memx unsigned char pcm1_samples[] ={
11
137,133,147,
12
...
13
};
14
...

Ich compiliere und linke mit Eclipse unter Linux, weil der GCC des 
Windows AVR Studio __flash und __memx noch nicht kennt.

Wenn ich mehr als 128 kByte flashen will, scheitert das verify:

avrdude:   verification error, first mismatch at byte 0x0000
avrstudio: Verify stoppt mit Timeout

Hat jemand einen Tipp für mich?


Hartmut

von Jim M. (turboj)


Lesenswert?

Schau mal in die Doku zu Avrdude ob der überhaupt mehr als 128k flashen 
kann. Ist das eine aktuelle Version bei Dir?

von STK500-Besitzer (Gast)


Lesenswert?

Hartmut S. schrieb:
> Ich compiliere und linke mit Eclipse unter Linux, weil der GCC des
> Windows AVR Studio __flash und __memx noch nicht kennt.

Da heisst das Makro ja auch PROGMEM oder so, um Daten ins Flash zu 
schreiben.

AVRdude sollte das können, da es auch von der Arduino-IDE zum 
Beschreiben und verifizieren der großen ATmegas verwendet wird.

von Hartmut S. (haschi)


Lesenswert?

Hallo,

das verwendete avrdude 6.0.1 ist unverdächtig, weil es ja mit dem AVR 
Studio auch klemmt und das Windows AVR Studio genutzt doch zum Flashen 
nicht avrdude ?!?

PROGMEM hatte ich auch schon versucht, gleicher Effekt. PROGMEM ist, 
wenn ich das richtig verstanden habe, eine ältere Methode für den 
Zugriff auf mehr als 64 kByte, __flash und __memx sind moderner.

Jetzt habe ich meinen alten Eigenbau-Parallelport-Bit-Banging Adapter 
als STK200 mit avrdude benutzt, und es funktioniert!

Also liegt es an meinem "DIAMEX USB ISP-Programmer Stick".

Ich werde mal bei DIAMEX anfragen.


Hartmut

: Bearbeitet durch User
von Kaj (Gast)


Lesenswert?

Hartmut S. schrieb:
> weil der GCC des
> Windows AVR Studio __flash und __memx noch nicht kennt.
AVR Studio ist ja auch schon etwas angestaubt. Atmel Studio (GCC > 
4.8.x) sollte das kennen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jim M. schrieb:
> Schau mal in die Doku zu Avrdude ob der überhaupt mehr als 128k flashen
> kann.

Seit Jahr und Tag kann es das.

von Jens (Gast)


Lesenswert?

Jörg W. schrieb:
> Seit Jahr und Tag kann es das.
Aber nicht jeder Programmer kann das. Vor allem die älteren haben da ein 
Problem (z.B.: AVR910-Programmer, AVR JTAG-ICE).

Jens

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.