Liste der Anhänge anzeigen (Anzahl: 4)
Vielen Dank, dass ihr euch die Mühe macht, das auch zu testen. Und gut zu wissen, dass das Problem offensichtlich auch bei anderen zu reproduzieren ist.
Ich habe in der Zwischenzeit an meinem Projekt (Farberkennung) etwas weitergearbeitet - soweit es ging. Wie gesagt taucht das Flash-Problem immer wieder auf - und verschwindet wieder. Und es betrifft immer nur eine der letzten drei Pages. Jetzt habe ich es auf eine einzige Zeile Code (die an sich unschädlich ist) eingrenzen können!
Anbei findet ihr drei ZIP-Files:
- Farberkennung_ok.zip - nur Build-Results, Version, die sich bei mir Flashen lässt
Farberkennung_PagerError.zip - nur Build-Results, Version die sich bei mir nicht Flashen lassen
Farberkennung_AVRStudio_Projekt.zip - das gesamte AVRStudio-Projekt
Beide Versionen (PageError/ok) compilieren/linken natürlich fehlerfrei, sie unterscheiden sich nur im Aufruf eines einzigen "SerPrint()".
In den Build-Results sind auch avr-dump Ergebnisse beider Versionen (PageError/ok) enhalten. Ich bin allerdings nicht in der Lage, daraus etwas zu erkennen.
Ich denke, der Vergleich der HEX-Files ist evtl. interessanter - hier muss ja irgendwie die Ursache liegen, soweit ich das verstanden habe. Wer kennt sich denn mit dem "Flash Tool" aus und könnte was dazu sagen?
Danke für eure Hilfe!
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank, Osser und Mic, dass ihr euch des Problems annehmt.
Ich habe jetzt auch mal "Asuro Flash" ('Eierlegendewollmilchsau' V1.8.13.110) getestet: Ein beliebiges Programm damit kompiliert und die entstandene 'text.hex' gegen die o.a. Version 'Farberkennung_PageError.hex' ausgetauscht. Das Ergebnis seht ihr unten: Error!
Das interessante dabei: Ossers "Asuro Flash" erkennt im gleichen HEX File nur 77 Pages, wo das reine FlashTool "Asuro Flash Tool V1.53" (die Namen sind wirklich unglücklich) 79 Pages erkennt - und bei 77 scheitert (bei mir).
Das kann doch schon mal garnicht sein, dass zwei verschiedene Tools im gleichen HEX File eine unterschiedliche Anzahl zu flashender Pages erkennen, oder?
Und das Kuriose dabei: Das HEX-File ist nicht irgendwie manipuliert - es ist ganz einfach aus dem gcc-Make-Prozess (Projekt: siehe oben) entstanden.
Derartige Probleme sehe ich sonst nirgendwo im Forum. Bin ich denn wirklich der einzige mit diesem 'Fenomen'????
Ich bin für jede Hilfe dankbar!
Ralf
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Osser, danke, dass du dich darum kümmerst!
Hier noch etwas Background zum Phänomen: Ich habe beide Asuro-InfraRot-Adapter: die reine COM-Port-Version und die USB-Version (beide ca. 2 Jahre alt). Die reine COM-Port-Version geht über eine PCI-Erweiterungskarte (2xCOM+1xLPT) auf COM4 des PC. Die USB-Version kann ich direkt an einen USB-Anschluss des Motherboards (also ohne internen/externen Hub) anschließen. BEIDE IR-Adapter funktionieren in der Regel einwandfrei. Auch der Asuro lässt sich i.d.R. einwandfrei und komplett flashen. Nur manchmal - je nach dem welche Sourcecodeänderungen ich gerade vorgenommen habe - klappt es nicht, gerade jetzt habe ich den Fall wieder.
Interessanterweise lässt sich meine aktuelle Version (Hex-File, siehe unten) über den COM-Adapter reproduzierbar super gut flashen, über den USB-Adapter aber zuverlässig garnicht (wieder PageError bei vorletzter Page, Page 99). Mit bestimmten Hex-Files schafft es aber auch der COM-IR-Adapter zuverlässig nicht!
Und noch etwas: Oft - leider nicht immer - bekomme ich den PageError weg, in dem ich einfach statisches ROM reserviere mit folgender Anweisung:
Code:
// -----------------------------------------------------
// DUMMY ARRAY FÜR FLASH PROBLEM
const uint8_t aucDummy[10] __attribute__ ((section (".text")));
Manchmal reicht es, die ArraySize von 16 auf 32 (und anders herum) zu ändern, dann geht es wieder.
Rätsel über Rätsel..... :-k