Заливка ассемблерной программы через avrdude

Добрый день!

Пробовал залить ассемблерную программу в UNO через avrdude. Avra нормально создал hex файл, и когда я пытаюсь его загрузить:

avrdude -p m328p -c stk500v1 -b 57600 -P /dev/ttyUSB0 -U flash:w:Led_on_off.hex -F

он мне выдает следующую ошибку:

avrdude error: unable to open port /dev/ttyUSB0 for programmer stk500v1 A possible candidate serial port is: -P /dev/ttyUSB0 or -P ch340 Note that above port might not be connected to a target board or an AVR programmer. Also note there may be other direct serial ports not listed above.

В чем может быть проблема? Порт точно живой, IDE его видит без проблем.

попробуй скорость 115200

Скорость задается заглавной буквой:

avrdude -p m328p -c stk500v1 -B 57600 -P /dev/ttyUSB0 -U flash:w:Led_on_off.hex -F

При прошивке микроконтроллера IDE должна быть закрыта!!! Иначе IDE “садится” на порт и не дает доступ к нему avrdude.

Да, конечно, IDE у меня закрыта, когда я работаю через avrdude. Заглавную букву и другую скорость обязательно попробую, как домой приду. Спасибо!

Если IDE успешно заливает прошивку, то просто скопируйте строку запуска avrdude из IDE и замените имя файла на нужное вам … Там 100% есть ещё ключ подключения конфиг файла, где описаны все программаторы, контроллеры …

2 лайка

С ключом -F можно сильно накосячить и прошить не то и не туда …

2 лайка

Я строку ТС использовал (из первого сообщения)…

типа такой:

avrdude -C avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:sketch_jan18a.ino.hex:i

здесь скорость через b115200 задаётся

ОК, простите за нубский вопрос, а где это посмотреть? :grimacing:

не помогло:

avrdude warning: p = 57600.0 us too large, using 276.7 us
avrdude error: programmer is not responding
avrdude error: cannot set Parm_STK_SCK_DURATION
avrdude error: unable to open port /dev/ttyUSB0 for programmer stk500v1
A possible candidate serial port is:
  -P /dev/ttyUSB0 or -P ch340

Соответсвенно с 115200 то же самое…

попробовал вот что:

sudo avrdude -p m328p -c arduino -B 115200 -P /dev/ttyUSB0 -U flash:w:Led_on_off.hex -F

выдает

avrdude error: unknown memory flash

я вообще перестал что-либо понимать. Говорил мне один “отец” что ассемблер и линукс - вещи несовместимые, теперь я его понимаю :joy:

В описанной вами выше проблеме нет ни проблемы линукса, ни проблемы ассемблера. У вас проблема в соединении мк с пк. Вот и решите её.
Как выше писал @Komandir - попробуйте использовать строку, что формирует сама IDE. Да и вообще - зачем вам командная строка чувака, если Вы в ней «ни в зуб ногой»?

1 лайк

ну тут ответ очевидный - надо же с чего тот начинать?)) плюс как раз мы изучаем сейчас программирование МК, правда все задания у нас идут на протеусе, и вот я и решил попробовать сделать что-то с ардуинкой на реальном железе дома.

тогда так:

sudo avrdude -C avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:Led_on_off.hex:i
1 лайк

В настройках IDE включите Показать подробный вывод: компиляции и загрузки - и всё увидите !!!

Скетч использует 9752 байт (30%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 865 байт (42%) динамической памяти, оставляя 1183 байт для локальных переменных. Максимум: 2048 байт.
D:\SoftWare\arduino-1.8.19\portable\packages\MiniCore\tools\avrdude\7.1-arduino.1/bin/avrdude -CD:\SoftWare\arduino-1.8.19\portable\packages\MiniCore\hardware\avr\2.2.2/avrdude.conf -v -patmega328pb -carduino -PCOM9 -b115200 -D -Uflash:w:C:\Windows\TEMP\arduino_build_827545/DemoReel100.ino.ino.hex:i 

3 строка как раз и есть запуск avrdude со стороны IDE !

1 лайк

Всем огромное спасибо! Будем дальше изучать ман по чуваку, чтобы дальше не задавать тупых вопросов :smiley:

1 лайк