Избегать 10 попыток Avrdude, когда программатор не отвечает
Иногда я обновляю свой скетч в среде Arduino, и когда я нажимаю на стрелку переноса, но забываю подключить arduino (я использую UART в своем проекте, поэтому каждый раз, когда мне нужно подключить/отсоединить некоторые провода), это драма, avrdude бросает это как минимум на 2 минуты :
avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x32
Это настоящая боль, потому что я не могу остановить avrdude, когда это происходит. Есть ли способ настроить среду Arduino, чтобы отключить ее?
@aqwa, 👍6
Обсуждение2 ответа
Лучший ответ:
К сожалению, MAX_SYNC_ATTEMPTS
-это константа в исходном коде, которая появляется несколько раз.
avrdude-это проект с открытым исходным кодом, поэтому его настройка и создание должны быть относительно простыми. Поскольку это числовое, а не строковое значение, и оно проверяется в нескольких местах, простое изменение двоичного файла, скорее всего, будет сложным.
Конечно, можно вручную убить процесс, хотя это раздражает.
Другой подход может заключаться в написании оболочки, которая потенциально может сначала выполнить некоторую проверку здравомыслия (есть ли у какого-либо другого процесса открытый порт?), А затем запустить avrdude в качестве своего дочернего элемента, передавая все аргументы. Контролируя вывод перед его передачей, можно обнаружить это сообщение и автоматически завершить экземпляр avrdude.
У меня был тот же вопрос,и я нашел следующее решение в linux: написать скрипт,
#!/bin/bash
avrdude=`ps -C avrdude | tail -n 1 | head -c 7`
kill $avrdude
сохраните его и соедините с помощью ярлыка
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Где параметры avrdude определяются в Arduino IDE?
- Невозможно загрузить скетчс помощью Platformio (но Arduino IDE работает)
- Проблема с загрузкой Arduino Mega
- "avrdude: stk500_getsync(): not in sync: resp=0x00", или некто по имени Avr не позволяет мне загрузить мою программу
- avrdude ser_open() can't set com-state
- Нет заголовочных файлов (.h) в Documents\Arduino\libraries\arduino_144469 с демонстрационным кодом
- ОШИБКА: истекло время ожидания Arduino 101 - что я могу сделать?
Хороший вопрос, я думал, что это будет легко исправить, но ничего не смог найти в параметрах командной строки AVRDude (http://www.nongnu.org/avrdude/user-manual/avrdude_4.html) или конфигурационные файлы avrdude., @Paul
В Linux я просто открываю терминал и набираю "killall avrdude", и он останавливает его..., @Majenko
Я не думал об этом, хорошая работа вокруг да около., @aqwa
Кроме того, я использую UECIDE, а не Arduino IDE, потому что я специально запрограммировал кнопку "стоп", чтобы обойти эту проблему., @Majenko