Hallo,
ich habe folgendes Problem welches mich jetzt seit Tagen beschäftigt.
Es soll ein Bootloader per ISP auf einen mega2560 übertragen werden.
Der Upload funktioniert auch ohne Fehlermeldung. Laut map-Datei ist die
Adresse für den Bootloaderbereich auch richtig.
Das Bootloaderprogramm arbeitet auch aber es schreibt nicht in den
Flash. Ich denke weil es durch den avrisp an die falsch Adresse
geschrieben wurde.
Im Anhang habe ich eine mit avrdude ausgelesene hex-Datei in dem das
Programm angeblich 2x vorhanden ist.
Meiner Meinung nach kann es doch nur der avrisp sein oder was meint Ihr?
Gibt es evtl. ein Firmware Update für diesen Proger?
Oder habe ich im Makefile was falsch gemacht?
Ich hoffe jemand hat da Erfahrung.
------------------------------------------------------------------------
-
FUSES:
BOOTSZ0 =0
BOOTSZ1 =1
BOOTRST =0
Hardware:
mega2560 auf einem arduino Board
avrisp clone wie diesen:
http://www.srt-versand.de/index.php?sid=6ca883ea80d2057c6163b89efa433c81&cl=details&anid=8dd49932d00865747.65532223&listtype=search&searchparam=5050112
Software:
avr-gcc (GCC) 4.3.4 unter Linux
avrdude
ja im hex-File steht es 2x drin.
Aber ist das wirklich auch das was im Flash steht?
Oder bekomme ich falsche Werte vom Proger?
Und wenn es 2x drin ist wie ist es da rein gekommen?
verzwicktes Problem finde ich.
nach vielen Stunden Internetrecherche bin ich nun immer noch nicht
schlauer wo der Fehler zu suchen ist.
ich habe mal das hex-File so angepasst, wie es aussehen sollte
(soll.hex) und hochgeladen. Danach wieder runtergeladen (ist.hex) und
leider ist das Programm immer noch 2x im Flash.
Könnte bitte jemand mit einem mega2560 mal testen ob das bei Ihm auch so
ist.
Im Internet habe ich z.B. gelesen das "nur" 128kB vom Flash genutzt
werden können. Da das Programm ja 2x exakt am Ende der beiden 128kB
Hälften stehen könnte ich mir das vorstellen.
Wäre auch egal weil 128kB sind eh mehr als ausreichend.
Mein Problem ist halt das der Bootloader den Flash nicht beschreibt.
Bitte um Hilfe um den Fehler weiter einzukreisen.
Vielleicht hat jemand einen Bootloader auf einem 2560 laufen und hat ein
paar Tips.
Ich habe mal folgendes gemacht:
deine soll.hex geflasht.
Automatisches Verify nach Programmierung: OK.
Nochmaliges Verify: Fehler.
Flash ausgelesen und abgespeichert.
Verify gegen diese Datei: OK.
Meinen Bootloader geflasht
Verify:OK.
Kann man wiederholen, bis man doof geworden ist.
Flash ausgelesen und abgespeichert, gelöscht, selbige Datei geflasht,
Verify gegen die Originalatei: OK.
Ich würde mal tippen, daß irgendwas mit deinem Hex-File nicht stimmt.
Flash mal das angehängte Hex-File auf deinen Controller, dann auslesen,
abspeichern und wieder anhängen. Wenn die Hardware funktionert, müsste
dieses File dann ja mit meinem Originalfile auf meinem Controller beim
Verify OK sein.
So sieht übrigends das Hexfile von meinem, funktionierenden, Bootloader
aus.
Das map-file ist das automatisch erzeugte.
Friedhelm Altmann schrieb:> Im Internet habe ich z.B. gelesen das "nur" 128kB vom Flash genutzt> werden können.
das ist eine andere Geschichte. Da gibt es ein kleines Problem beim GCC.
Das hat hiermit aber nichts zu tun.
mfg.
Hallo Thomas,
erst mal vielen Dank für deine Mühe.
Anbei das Hex-File welches ich erhalten wenn ich dein Hex-File wieder
auslese.
Zwischenzeitlich habe ich mal den Fastbootloader von Peter Dannegger auf
meinen µC geflasht und dann ein Blink-Programm über die UART
aufgespielt.
Funktioniert alles nur wenn ich das HEX-File auslese ist der Bootloader
wieder 2x im Flash und jetzt kommts -----> das Blink Programm ist nicht
im Speicher!!!!!
müsste ja an Adresse 0000 stehen. steht es nicht und auch nirgendwo
anders.
Ich hab nur noch ????
Friedhelm Altmann schrieb:> Ich hab nur noch ????
Hab' ich irgendwie auch.
Die Datei macht folgenden Fehler: siehe Anhang.
Schick mal dein Projekt rüber. Ich kompilier das mal bei mir.
mfg.
Jetzt was ganz tolles:
Die von dir zurückgesendete Datei geflasht, Verify gegen meine
Originaldatei: OK.
Meine Originaldatei geflasht, Verify gegen die von dir zurückgesendete:
Fehler siehe letzter Post.
Hat dein Nachbar in den letzten Tagen ein Huhn geschlachtet und
beträufelt eine Strohpuppe mit dem Blut?
mfg.
ja das dachte ich mir. so kompliziert ist das Programm ja nicht.
Jetzt sehe ich 2 mögliche Fehlerquelle
meinen avrisp
oder
avrdude: Version 5.10, compiled on Mar 23 2010 at 15:03:00
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
ich werde dann mal noch was googlen wegen der avrdude version
und dann muss ich wohl einen anderen proger kaufen
jedenfalls vielen dank für deine tatkräftige Hilfe
so konnte ich den Fehler stark eingrenzen
Viele Grüße
Fred
Die von dir kompilierte soll.hex läuft bei mir auch.
Hatte nur ein Verify gemacht, daß beim ersten Mal OK war und dann nicht.
Ist ja logisch, wenn das Programm ins Flash schreibt. Da war ich etwas
auf dem Holzweg.
Die Lösung heisst wohl AVRISP MKII.
Allerdings das Hexfile in die Binärdaten umwandeln macht ja nicht der
Programmer, sondern der avrdude. Das würde deinen Programmer dann wieder
entlasten.
Aber vielleicht können die auch nicht zusammen wegen der Adressen >64K.
Kannst du den Programmer nicht unter Windows mit Studio 4.18 testen?
mfg.
Friedhelm Altmann schrieb:> Funktioniert alles nur wenn ich das HEX-File auslese ist der Bootloader> wieder 2x im Flash und jetzt kommts -----> das Blink Programm ist nicht> im Speicher!!!!!> müsste ja an Adresse 0000 stehen. steht es nicht und auch nirgendwo> anders.
Dann ist ein Bug in Deinem Programmer oder in der Programmiersoftware.
Es wird 2* der ober 64kB Block ausgelesen.
Peter
ich habe das ganze heute auf der Arbeit nochmal unter XP mit der myAVR
Software getestet und denke es ist wohl ganz sicher der Progger.
Werde mir dann gleich mal einen bestellen.
Hat jemand Erfahrung mit denen von myAVR?
http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&katID=16
Oder reicht es einen aktuelleren von Stange zu kaufen?
Vielen Dank nochmal für die Hilfe
Fred
Friedhelm Altmann schrieb:> Werde mir dann gleich mal einen bestellen.
Erste Wahl ist das Original, der AVRISP MKII von Atmel.
Aber Vorsicht: In der Bucht werden jede Menge Clones angeboten, die
nicht halten, was Atmel verspricht.
mfg.