Fehler beim Hochladen der Hex-Datei auf AVR uC

Ich versuche, eine Hex-Datei von Ubuntu auf ein ATtiny85 hochzuladen, indem ich diese Befehle ausführe:

avr-gcc -mmcu=attiny85 -Wall -Os -o src.elf main.cpp
avr-objcopy -j .text -j .data -O ihex src.elf src.hex
avrdude -p t85 -c avrispmkII -e -U flash:w:src.hex

Ich bekomme diesen Fehler:

avrdude: ser_open(): can't set attributes for device "/dev/ttyS0": Inappropriate ioctl for device

Ich habe versucht, verschiedene USB-Anschlüsse zu verwenden, aber das hat nicht geholfen. Wie kann ich dieses Problem lösen?

Versuchen Sie, 'sudo' vor dem Befehl avrdude zu verwenden, möglicherweise sind Ihre USB-Berechtigungen etwas verrückt. Außerdem müssen Sie möglicherweise sicherstellen, dass Sie den richtigen Port verwenden, den Sie mit dem Flag -P für avrdude überschreiben können.
Nein, 'sudo' hat nicht funktioniert ...
Möglicherweise sehen Sie stackoverflow.com/questions/9929587/… Kann Ihnen darüber hinaus mit dem AVRISP nicht wirklich helfen, also habe ich meine Antwort entfernt, die mehr für serielle USB-Programmierer/Arduino-ISP-Skizzen im stk500-Stil galt.
) Trennen Sie Ihren Programmierer; 2) Geben Sie in der Befehlszeile sudo dmesg -c; 3) Schließen Sie Ihren Programmierer an; 4) Geben Sie in der Befehlszeile erneut `sudo dmesg -c ein und kopieren Sie die Ausgabe in Ihre Frage.
Dies ist ziemlich einfach zu lösen, wenn Sie wissen, wonach Sie suchen müssen. Erwägen Sie, sich uns im Chat anzuschließen: chat.stackexchange.com/rooms/15/electrical-engineering Ich kann es Ihnen erklären.

Antworten (1)

Ein kurzer Bericht aus dem Chat.

Stellen Sie zunächst sicher, dass das Treibermodul geladen ist, anscheinend geschieht dies nicht automatisch:

Option 1: On-the-Fly:modprobe cdc-acm

Option 2: So laden Sie das Modul beim Booten:

  • sudo bash -c 'echo hoi >> /etc/modulesBeachten Sie, dass das Doppelte >> wichtig ist.
  • Neustart
  • Prüfen Sie, ob das Modul geladen ist:lsmod | grep cdc-acm && echo success || echo failed

Sie sollten in der Lage sein, das Gerät zu programmieren mit:

sudo avrdude -v -p t85 -c avrispmkII -P usb -U flash:w:src.hex

Überprüfen Sie diese Frage für weitere Informationen: https://stackoverflow.com/questions/5412727/avrisp-mkii-doesnt-work-with-avrdude-in-linux

Ich bin mir nicht sicher, was der Grund für die Fehlermeldung ist, die Sie an dieser Stelle gemeldet haben:

avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Target not detected
avrdude: initialization failed, rc=-1 

Ihre To-do-Liste:

  1. Laden Sie automatisch das cdc-acm-Modul => oben beschrieben.
  2. Finden Sie heraus, was mit Ihren udevRegeln nicht stimmt, damit Sie nicht zum Programmieren verwenden müssen sudo=> überprüfen Sie https://askubuntu.com/ dafür.
  3. Finden Sie heraus, warum der Programmierer nicht antwortet. https://electronics.stackexchange.com/ ist der richtige Ort. Ein Bild deines Aufbaus hilft weiter. Da es sich um einen anderen Fehler handelt als den, mit dem Sie begonnen haben, halte ich eine neue Frage für gerechtfertigt.