Hallo Leute, mal wieder AVRDUDE! Aber ich komme nicht weiter, auch mit viel Lesen und testen nicht. Ich würde gerne unter Linux meine Atmels proggen. Wie oben beschrieben, ich habe zwei Progger einen Eigenbau USBasp und einen mySmartUSB light (stk500v2 fw). Ich kann eine funktionierendes hex und eep mit z.B. myAVR_ProgTool unter Windows per ISP auf einen Atmega8 schreiben. Das funktioniert einwandfrei mit beiden Proggern mit unterschiedlichen Einstellungen (stk500 / USBasp). Nun möchte ich jedoch auch unter Linux arbeiten. Mit avrdude bekomme ich Verbingung zum Atmega die beiden Files werden auch geschrieben OHNE Fehlermeldung, jedoch wird anscheinend Grütze auf dem Atmega geschrieben. Zu erkennen an der Ausgabe des LCD. Dies geschieht unter Windows und unter Linux. Folgende Versionen von avrdude habe ich probiert 6.1 und 5.1 Ich nutze folgendes Kommando (beispielshaft für linux): arvdude -p m8 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:test.hex Wäre super, wenn ich einen Tip bekommen könnte. cw Anbei ein Log: F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9307 avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "test.hex" avrdude: input file test.hex auto detected as Intel Hex avrdude: writing flash (1894 bytes): Writing | ################################################## | 100% 0.94s avrdude: 1894 bytes of flash written avrdude: verifying flash memory against test.hex: avrdude: load data flash data from input file test.hex: avrdude: input file test.hex auto detected as Intel Hex avrdude: input file test.hex contains 1894 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.69s avrdude: verifying ... avrdude: 1894 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you. F:\test>
avrdude arbeitet fehlerlos. Ist aber beim Programmieren mit "myAVR_ProgTool" und "avrdude" die Hex-Datei "test.hex" beide Mal die selbe (Pfade) ?
ja, die Datei ist die gleiche im Intel Format
Also mit deiner avrdude-Befehlszeile wird nur ein File, und zwar das "test.hex" in den Flashspeicher geschrieben. Wenn du auch Anfangsparameter in den EEprombereich schreiben willst, musst du den Befehl entsprechend erweitern (siehe avrdude.PDF).
ja, ich weis die Erweiterung ist eeprom:w:test.eep aber bringt auch nichts.
>jedoch wird anscheinend Grütze auf dem Atmega >geschrieben. Vieleicht steht diese Grütze ja schon in deiner HEX Datei, und mit avrdude ist alles in Ordnung. >Zu erkennen an der Ausgabe des LCD. Bild zeigen. Programm zeigen.
Hallo, ich benutze avrdude 6.0.1 unter Linux (Ubuntu 12.04) hauptsächlich mit ATTinys und habe keine Probleme feststellen können. Ich benutze es sowohl mit einen AVRDragon wie auch mit dem STK500v2. w schrieb: > Ich kann eine funktionierendes hex und eep mit z.B. myAVR_ProgTool unter > Windows per ISP auf einen Atmega8 schreiben. Das funktioniert > einwandfrei mit beiden Proggern mit unterschiedlichen Einstellungen > (stk500 / USBasp). Was funktioniert einwandfrei ? Das Programmieren oder das Programm? > > Nun möchte ich jedoch auch unter Linux arbeiten. Mit avrdude bekomme ich > Verbingung zum Atmega die beiden Files werden auch geschrieben OHNE > Fehlermeldung, jedoch wird anscheinend Grütze auf dem Atmega > geschrieben. Zu erkennen an der Ausgabe des LCD. Dies geschieht unter > Windows und unter Linux. > Oben tut es unter Windows "einwandfrei" und jetzt ist es auch unter Windows "Grütze"? Das verstehe ich nicht. Woher weißt Du, dass "Grütze" geschrieben wird? Hast Du das Flash mal ausgelesen? Oder vermutest Du, das es Grütze ist, da das Programm nicht wie gedacht funktioniert? > > > avrdude: verifying ... > avrdude: 1894 bytes of flash verified > Zumindest avrdude hat das flash auch ausgelesen und sagt, dass es mit der Datei übereinstimmt. Erzeuge Dir doch zwei unterschiedliche Dateien. Programmiere dann die eine Datei. Validiere mit dieser Datei explizit/separat (mit "-U flash:v:<datei>"). Validiere mit der anderen Datei, gibt es Fehlermeldungen?
Hallo an alle, ich habe den Fehler gefunden, Dank dem Austausch mit euch, was nochmals zum intensiven Nachdenken führte ;-) F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex eeprom:w:test.eep (FALSCH) F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex -U eeprom:w:test.eep (RICHTIG) Das bedeutet, der EEPROM wurde nicht gebrannt. DANKE cw
cw schrieb: > ja, ich weis die Erweiterung ist eeprom:w:test.eep aber bringt auch > nichts. cw schrieb: > F:\test>avrdude -p m8 -c usbasp -U flash:w:test.hex -U eeprom:w:test.eep > (RICHTIG) ...
Tip zur Fehlersuche: über Kreuz testen. Also mit der funktionierenden Kombination den AVR brennen. Dann mit der (bisher) nichtfunktionieren- den den AVR auslesen. Stimmen die HEX-Files überein? Wenn ja: das ausgelesene Hex-File mit der (bisher) nichtfunktionierenden Kombination brennen. Geht es jetzt immer noch? Wenn nicht: AVR wieder mit der anderen Kombination auslesen. Wenn das das unsprüngliche .hex File ergibt, der AVR aber einmal funktioniert und einmal nicht, dann wäre das wirklich ein Rätsel. Ich tippe aber darauf, daß da vorher irgendwelche Unterschiede zutage treten. XL
Übers Kreuz testen ist nicht mehr nötig - Als die avrdude-Befehlszeile von @cw vollständig und später auch noch richtig eingegeben wurde, war der Fehler weg. ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.