Forum: Mikrocontroller und Digitale Elektronik AVR Studio: Flasch aus hex-File geht - aus Memory nicht


von Torsten B. (torty)


Lesenswert?

Guten Morgen

Bin von STK500 auf ISP-PROG umgestiegen und auf einmal klappt das 
Flashen aus dem AVR Studio Memory nicht mehr (es werden nur noch Nullen 
geschrieben).
Wenn ich jedoch das Memory in eine Hex Datei schreibe (über Up/Download 
Memory) und diese hex Datei dann flashe, klappt alles.

Hat jemand eine Idee ?

Danke
Torsten

von Mmmh (Gast)


Lesenswert?

>Hat jemand eine Idee ?
Ja. Tortenguss.

Kannst Du das mal vernünftig beschreiben, btte?

>Flashen aus dem AVR Studio Memory
Woraus, bitte? Es gibt kein "AVR Studio Memory".

>das Memory in eine Hex Datei schreibe
Was? Welcher Speicher? Der in Deinem PC oder was?

>(über Up/Download Memory)
Worüber?

>diese hex Datei dann flashe

Da man leider nicht weiss, aus welchem geheimnisvollen "Memory" Du da 
irgendwas liest, weiss man auch nicht was Du da in den Flash-Speicher 
flashst und daher auch nicht was da "klappt".

Am besten wird es sein, Du benutzt die Begriffe die in der Hilfe von 
AVR-Studio verwendet werden.

von Torsten B. (torty)


Lesenswert?

Ich meine das Simulator/Emulator Flash Memory im AVR Studio.

Mmmh schrieb:
>>(über Up/Download Memory)
> Worüber?

Findest DU auch über DEBUG (zweiter Eintrag von unten) in der Studio 
Version 4.
Da kann man nämlich das Flash Mem in eine Datei abspeichern ...

Wenn ich diese Datei dann flashe, geht alles.
Wenn ich gleich nach dem compilieren die Datei flashe natürlich auch.

Hast Du schlecht geschlafen, oder bist Du Morgenmuffel ;-)

Und wenn schon, dann bitte "Törtchen"

von Oliver (Gast)


Lesenswert?

Wer oder was ist ISP-Prog?

Und was meinst du mit "Flashen aus dem AVR Studio Memory"? Das Studio 
flasht niemals aus irgend einem Memory. Das flasht immer hex-Dateien.

Oliver

von Mmmh (Gast)


Lesenswert?

>>>(über Up/Download Memory)
>> Worüber?

>Findest DU auch über DEBUG

Weder DU noch Ich finden das da. Das ist ein Menueintrag unter dem der 
Speicher genauer spezifiziert werden muss, ehe man etwas speichert oder 
lädt. Also ist "AVR Studio Memory" einfach nicht sinnvoll. "Der 
Programmspeicher, der Datenspeicher etc. der Simulation", das hätte Sinn 
gemacht.

Im Grunde macht das kein Mensch so, das er den Programmpeicher der 
Simulation in eine Datei schreibt um diese dann zu flashen. (Ich will 
garnicht bestreiten, das das mal notwendig sein mag, aber das wäre dann 
schon ein sehr spezielles Szenario).

Im allgemeinen assembliert man und flasht dann direkt das Hex-File das 
der Assembler produziert hat.

>auf einmal klappt das Flashen aus dem AVR Studio Memory nicht mehr
Das geht so NIE. Ist auch nie so gegangen. Es wird ein HEX-File erzeugt. 
Nicht erst das HEX-File der Simulation gespeichert.

>Hast Du schlecht geschlafen, oder bist Du Morgenmuffel ;-)
Nimm das einfach als Zeichen dafür das Du Dich sehr abstrus und seltsam 
ausgedrückt hast bzw. hier einen ebensolchen Weg beschreiten willst.

Das macht kein Mensch so kompliziert wie Du.

von Torsten B. (torty)


Lesenswert?

Mach doch bitte kurz das Flash Fenster auf.
Das ist der Knopf, der aussieht, wie ein Käfer mit "AVR" auf dem Rücken 
;-)

In diesem Dialog wird der Anwender gefragt, ob er aus dem "Current 
Simulator/Emulator Flash Memory" flashen möchte, oder aus dem "Input Hex 
File"

von Mmmh (Gast)


Lesenswert?

>ach doch bitte kurz das Flash Fenster auf.
>Das ist der Knopf, der aussieht, wie ein Käfer mit "AVR" auf dem Rücken
>;-)

>In diesem Dialog wird der Anwender gefragt, ob er aus dem "Current
>Simulator/Emulator Flash Memory" flashen möchte, oder aus dem "Input Hex
>File"
Das ist schon klar Meister, aber warum sollte man das tun? Das wäre ganz 
abstrakt, nur dann notwendig wenn ich Code, der den Flash-Speicher 
verändert nur im Simulator laufen lassen kann, wobei das Ergebnis dann 
im echten Prozessor stehen muss.
Das müsstest Du mal erklären, warum das in Deinem Fall nötig ist.
Nimm doch einfach den normalen Weg und gut ist.

Es geht doch sicher nicht nur darum das anders zu machen als es alle 
Anderen machen, oder?

von Torsten B. (torty)


Lesenswert?

Aaaaahhh..

Natürlich mache ich es nicht immer so. Ich habe es nur so ausprobiert, 
weil es "wie immer" nicht funktioniert hat.
Dann habe ich einen Eintrag in diesem schönen Forum gefunden, in dem 
geraten wurde, den Flash Inhalt aus dem Device mit dem Inhalt des AVR 
Mem zu vergleichen.
Das war sinnvoll, weil ich da gemerkt habe, dass es verschiedene Inhalte 
waren und der ISP-Prog:

http://cgi.ebay.de/AVR-USB-ISP-Programmer-ATMEL-ATMEGA-STK500-Neu-ATTINY_W0QQitemZ220529640560QQcategoryZ65507QQcmdZViewItemQQ_trksidZp3907.m263QQ_trkparmsZalgo%3DSIC%26itu%3DUCI%252BIA%252BUA%252BIEW%252BFICS%252BUFI%26otn%3D39%26po%3DLVI%26ps%3D54

nur Nullen schreibt, wenn ich in dem Flash Dialog den Knopf "Emulator 
Mem." aktiviere (was mit dem STK500 immer und auch schneller ging).

Jetzt ist die "Input Hex File" Option aktiv und es geht so.
MEine Frage war ja nur, warum es jetzt nicht mehr mit der Option " Use 
Current Sim/Em Memory" funktioniert.

von Mmmh (Gast)


Lesenswert?

Aaaaaah. ;-)

>Dann habe ich einen Eintrag in diesem schönen Forum gefunden, in dem
>geraten wurde, den Flash Inhalt aus dem Device mit dem Inhalt des AVR
>Mem zu vergleichen.
Naja, da das mehrere Zwischenschritte benötigt, ist das natürlich etwas 
fehleranfälliger, gerade wenn man etwas unruhig ist.
Aber, das nächsteinfachere ist, das HEX-File zu vergleichen, mit 
"Verify".
Am besten Du machst das sowieso routinemaßig. Das Vergleichen mit dem 
Hex-File des Flash-Speichers aus dem Simulator ist eigentlich ein 
unnötiger Umweg. Da Du nach dem Assemblieren das HEX-File ohnehin schon 
hast, sollte das HEX-File des Programmspeicher aus der Simulation damit 
identisch sein. (Eigentlich müsstest Du das noch extra überprüfen).

Kann sein, das Du einfach nur was vergessen hast.

1. Neu-Assemblieren
2. Debugger starten
3. Hex-File speichern
4. Hex file im Programm-Dialog ändern
5. Verify.

Vor allem Schritt 4 ist extrem problematisch, weil diese Datei dann für 
alle Ewigkeiten dort stehen bleibt, während man intuitiv erwartet, das 
nach jedem Assemblieren die neue Datei dasteht. (Das hat mich jedenfalls 
schon Nerven gekostet).

von Mmmh (Gast)


Lesenswert?

>Ich habe es nur so ausprobiert, weil es "wie immer" nicht funktioniert hat.
Na gut. Dann ist das also das Hauptproblem: Nach Umstieg von STK500 auf 
AVR-ISP wird nicht mehr korrekt geflasht.

Dann würde ich an Deiner Stelle mal versuchen das identische HEX-File 
einmal mit dem STK500 zu flashen und einmal mit dem neuen Teil (das ich 
leider nicht kenne).
Da kannst Du dann kreuzweise vergleichen. Sehr konzentrieren, da gerade 
wenn was schief läuft die Nerven leicht durchgehen. Du musst vor allem 
die verwendeten Dateinamen sehr genau im Auge behalten.

Woran merkst Du das nicht mehr korrekt geflasht wird?

von Torsten B. (torty)


Lesenswert?

Das Verify hatte mich auf die Fehlermeldung:
WARNING: FLASH byte address 0x0001 is 0x00 (should be 0xC0).. FAILED!
gebracht.

Das war mein Einstieg in das Forum.

Mit Schritt 4 muss ich leider (oder zum GLück) widersprechen.
Zumindest in der VErsion 4, die ich habe. Nimmt er nach der assemblieren 
über Strg+F7 beim Flashen die aktuelle Version.
Es dauert nur etwas länger, als direkt aus dem Sim/Em Mem.

Leider ist es aber noch so, wie ich geschrieben habe. Das Flashen aus 
dem Sim/Em Mem klappte beim STK500 immer problemfrei. Mit dem neuen 
Programmer geht es nur noch mit dem Input HEX File.
Stört mich aber im Augenblick auch nicht mehr weiter, weil das Programm 
für den Tiny13 eh recht klein ist.

Wollte nur willen, ob mir jemand sagen kann, warum das so ist.

von Torsten B. (torty)


Lesenswert?

Hab Deinen letzten Eintrag erst gerade gelesen.
Mit dem STK500 flashen ist leider im Augenblick nicht möglich. Hab das 
Ding bei Hardwareänderungen (SCHÄM * mit eingeschalteter Vcc *SCHÄM) 
abgeraucht.
:-(
Das nicht mer richtig geflashed wird, hat mir verify verraten.

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.