Hallo Leute Ich hab ein Problem. Wollte nach ner XP neuinstallation wieder meinen Atmega per WinAVR programmieren. Hab im makefile( hab mfile von WinAVR benutzt) ltp1 eingestellt. AVRDUDE_PROGRAMMER = stk200 # com1 = serial port. Use lpt1 to connect to parallel port. AVRDUDE_PORT = lpt1 Doch wenn ich flashen möchte, beschwert er sich, dass er den Com 1 nicht öffnen kann: avrdude: failed to open parallel port "com1" Weiß jemand, wie er auf die Idee kommt, dass der com1 der parallel Port ist? Könnte was in XP falsch eingestellt sein? hab die libusb0 istalliert und install_giveio ausgeführt. Könnte da ein Fehler aufgetreten sein? Währe für Anregungen aller Art sehr dankbar, da ich keine Ahnung hab, was da gerade falsch läuft. Gruß Enton
Das kann an einem falschen Makefile liegen ggf. in Verbindung der Defaults in der Avrdude.conf Datei. Vielleicht wird die Variable AVRDUDE_PORT im Makefile nicht oder nicht korrekt an Avrdude übergeben. Wie sieht dein Makefile aus (Datei anhängen!)?
Makefile ist im Anhang. Meine Datei heißt main.c.
Das Makefile ist korrekt. Wenn ich es mit dem einfachsten main.c aufrufe (make program >& error.txt), kommt folgende Ausgabe:
1 | Creating load file for EEPROM: main.eep |
2 | avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ |
3 | --change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0 |
4 | d:\winavr\bin\avr-objcopy.exe: there are no sections to be copied! |
5 | avrdude -p atmega32 -P lpt1 -c stk200 -U flash:w:main.hex |
6 | |
7 | avrdude: AVR device not responding |
8 | avrdude: initialization failed, rc=-1 |
9 | Double check connections and try again, or use -F to override |
10 | this check. |
11 | |
12 | |
13 | avrdude done. Thank you. |
14 | |
15 | MAKE.EXE: *** [program] Error 1 |
das lpt1 ist wie erwünscht in der Kommandozeile. Da ich keinen stk200 an der lpt1 angeschlossen habe, kommt logischerweise der Fehler /AVR device not responding/ Ich habe zum Testen Avrdude aus dem WinAVR-20070525 Paket benutzt (avrdude -v >& version.txt).
1 | AVRDUDE.EXE: Version 5.3.1, compiled on May 15 2007 at 17:05:10 |
2 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
3 | |
4 | System wide configuration file is "D:\WINAVR\BIN\avrdude.conf" |
5 | |
6 | |
7 | AVRDUDE.EXE: no programmer has been specified on the command line or the config file |
8 | Specify a programmer using the -c option and try again |
Dessen Konfigurationsdatei avrdude.conf ist auch im Anhang. com1 kommt darin nur an einer Stelle vor:
1 | # |
2 | # Overall avrdude defaults |
3 | # |
4 | default_parallel = "lpt1"; |
5 | default_serial = "com1"; |
Und die käme zum Zug, wenn auf der Kommandozeile kein Programmer erkannt wird. Wobei aber der unter default_parallel eingestellte Anschluss benutzt würde, weil später beim Programmerid stk200 der Typ par (für parallel) angegeben ist.
1 | programmer |
2 | id = "stk200"; |
3 | desc = "STK200"; |
4 | type = par; |
5 | buff = 4, 5; |
6 | sck = 6; |
7 | mosi = 7; |
8 | reset = 9; |
9 | miso = 10; |
10 | ; |
Vielleicht versuchst du diesen Gedankengang mit deiner Konfiguration nachzuvollziehen und vergleichst die entsprechenden Positionen. Ich drücke dir die Daumen!
Die avrdude.conf hat bei mir die gleichen Einstellungen. Daran kanns dann wohl nicht liegen, oder? hab sie mal in den Anhang gepakt.
Hab die avrdude.config ausgetauscht. nach dem 3 Versuch hat es dann geklappt. Anfangs hat er die falschen Parameter Übergeben: avrdude -p atmega32 -P com1 -c stk200 -U flash:w:main.hex Nachdem ich die Datei dann mal direkt von C:\ aufgerufen habe, hats geklappt: avrdude -p atmega32 -P lpt1 -c stk200 -U flash:w:main.hex Warum, weiß ich aber auch nicht. Aber hauptsache es funktioniert. Danke schön noch mal. Gruß enton
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.