Forum: Mikrocontroller und Digitale Elektronik avrdude/ATmega32: Flash kann nicht gelesen werden


von Wiki (Gast)


Lesenswert?

Wenn ich mit:

$avrdude -p ATmega32 -v -c AVRISPmkII -P usb -U flash:r:ORG_FLASH.hex:i

versuche, das Flash auszulesen, erhalte ich nur:

$ cat ORG_FLASH.hex
:00000001FF

obwohl der o.g. Befehl den avrdude einige Sekunden schaffen lässt und 
der am Ende diesen Output produziert:

avrdude: Device signature = 0x1e9502
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as CA
avrdude: reading flash memory:

Reading | ################################################## | 100% 
15.43s

avrdude: writing output file "ORG_FLASH.hex"

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as CA
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Ich kann auf die entsprechende Weise das EEPROM, die Fuses und die 
Lockbits

$ cat ORG_LOCK.hex
:010000003FC0
:00000001FF

auslesen, aber nicht das Flash.
Was könnte da los sein?

von holger (Gast)


Lesenswert?

>auslesen, aber nicht das Flash.
>Was könnte da los sein?

Der Chip ist leer und enthält nur 0xFF.
Diese können beim Intel-Hex Format
weggelassen werden. Also bekommst
du nur diese eine Zeile die da bedeutet:
End of Hexfile.

von Wiki (Gast)


Lesenswert?

Ja, so sieht es in der Tat aus.

Allerdings ist der Chip nicht leer gewesen.

Es handelte sich um eine AVR NET-IO im Originalzustand, die auch 
nachweislich funktionierte, hab's ja vorher ausprobiert.
Ich wollte einfach ein Backup von dem Inhalt machen, bevor ich was 
anderes reinflashe.

Umflashen konnte ich es auch. Ich habe jetzt den uWebSrv 
einprogrammiert, der nun auch funktioniert. Diesen kann ich wiederum 
auslesen mit:

avrdude -p ATmega32 -v -c AVRISPmkII -P usb -U flash:r:uWebSrv_org.hex:i

, also praktisch demselben Befehl wie oben, wobei die ausgelesene Datei 
in diesem Fall auch korrekt aussieht. Das Lock-Byte ist dasselbe wie 
vorhin.

Was war da bloß vorher los?

von Wiki (Gast)


Lesenswert?

Selbst wenn ich's jetzt mit dem Dateinamen "ORG_FLASH.hex" von oben 
mache, funktioniert es nun (mit dem uWebSrv) auch.

Ich hatte übrigens (mit der Pollin-Software) einmal mit -vvvv ausgelesen 
und den Output geloggt, und tatsächlich wurden alle Bytes als FF 
gelesen.

Jedoch war ja, wie gesagt, was drin in dem Chip.

Verstehe immer nicht, was da los war. Ob das ein Bug von avrdude ist?

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.