Как установить avrdude на Windows 10

Обновлено: 01.07.2024

AVRDUDE — это утилита для загрузки/выгрузки/манипулирования содержимым ПЗУ и EEPROM микроконтроллеров AVR с использованием технологии внутрисистемного программирования (ISP).

Документация

Документацию можно загрузить из раздела загрузок или прочитать здесь.

История

AVRDUDE когда-то был запущен Брайаном С. Дином как частный проект внутрисистемного программиста для серии микроконтроллеров Atmel AVR, как часть коллекции инструментов с открытым исходным кодом и бесплатного программного обеспечения, доступных для этих контроллеров. Первоначально программное обеспечение было написано для операционной системы FreeBSD, хранилось в частном репозитории CVS и распространялось под названием avrprog.

В 2022 году проект переместился из Саванны в Github, чтобы воспользоваться инструментами, которые в конечном итоге развились вокруг системы контроля версий Git.

Основные особенности

Основные функции AVRDUDE включают:

  • Пользовательский интерфейс на основе командной строки для всех функций загрузки и выгрузки (включая обработку байтов предохранителей) для упрощения автоматизации. e. грамм. путем включения в Makefile.
  • Интерактивное исследование и модификация различных областей памяти в так называемом терминальном режиме. Также предлагается возможность изменения рабочих параметров платы Atmel STK500 (целевое напряжение, VAref, основная тактовая частота).
  • Известно, что он работает во всех основных операционных системах стандарта POSIX, а также на платформах Win32. Используя существующие драйверы операционной системы в системах в стиле POSIX, можно поддерживать безопасный доступ к параллельному порту без привилегий root. На платформах Win32 доступ к параллельному порту требует предварительной установки драйвера (giveio.sys), который предоставляет пользовательскому процессу прямой доступ к регистрам ввода-вывода.
  • Поддерживает широкий спектр оборудования для программирования, от дешевых разъемов ISP, которые подключают интерфейс ISP AVR напрямую к параллельному порту компьютера (без дополнительных схем) или последовательному порту (необходимы некоторые дополнительные схемы), до более продвинутых адаптеров ISP, использующих буфер/ чип драйвера (например, 74HC373), вплоть до (более сложных) последовательно подключенных программаторов, таких как устройства ISP в стиле AVR910, плата Atmel STK500 и Atmel JTAG ICE mkII. Большинство популярных адаптеров предустановлены, добавить новый адаптер параллельного порта так же просто, как отредактировать файл конфигурации (перекомпиляция не требуется).
  • Поддерживает Intel Hex, Motorola S-Record и необработанные двоичные файлы для ввода и вывода, а также прямую спецификацию содержимого памяти в командной строке (полезно, например, для байтов предохранителей). При вводе формат файла может определяться автоматически.
  • В «терминальном режиме» области памяти устройства могут быть проверены и, возможно, изменены. Это позволяет интерактивно устанавливать фьюзы или модифицировать несколько ячеек EEPROM.

Как получить помощь или сообщить об ошибке

Чтобы получить поддержку AVRDUDE или связаться с другими пользователями этого инструмента, см. список рассылки avr-chat.

Люди, которые хотят каким-то образом внести свой вклад в проект, могут подписаться на список рассылки avrdude-dev и связаться с командой разработчиков там.

Если вы уверены, что нашли ошибку в AVRDUDE, вы можете открыть отчет об ошибке.

До сих пор не так много документации разработчиков для AVRDUDE. Существует уголок разработчика с некоторыми случайными статьями. Дополнительную информацию можно найти на личном сайте Брайана.

На этой странице предпринята попытка описать процедуру установки полной цепочки инструментов на основе GCC в современной системе Windows. Я разработал эти инструкции на своем компьютере с Windows 10, но они должны работать для версий Windows, начиная с Windows 7. В более старых версиях вы можете использовать WinAVR. WinAVR раньше был предпочтительным способом установки этой цепочки инструментов в Windows, вплоть до того, что он был полуофициальным, но не поддерживался годами. Сообщается, что установщик сеет хаос в новых версиях Windows, но, вероятно, отлично работает в XP.

Установить Git

В качестве отправной точки мы будем использовать оболочку bash, установленную Git. Его легко установить, и если вы используете Git в Windows, возможно, он у вас уже есть. Щелкните меню «Пуск» и выполните поиск «Git Bash». Если он появится, значит, он у вас уже есть. Если нет, загрузите и установите Git для Windows. Значения по умолчанию для всех опций в установщике будут работать для наших целей.

Установите цепочку инструментов Atmel GNU

Загрузите Atmel AVR Toolchain для Windows с сайта Atmel и запустите программу установки. Когда вас спросят, куда извлечь файлы, нажмите кнопку "." и перейдите в папку C:\Program Files, затем нажмите Извлечь.

toolchain installer< бр />

Установить GNU Make

Загрузите Gnu Make и запустите программу установки. Примите расположение по умолчанию для установки. Вы можете выбрать, хотите ли вы, чтобы значок отображался в меню «Пуск».

создать установщик< бр />

Установить avrdude

<р>. Разархивируйте архив и скопируйте его в папку C:\Program Files.

Обновите ПУТЬ

Теперь нам нужно указать Windows, где найти все инструменты, которые вы только что установили, когда вы вводите их имена в командной строке. Перейдите в меню «Пуск» и откройте «Панель управления», затем перейдите в «Система». На левой панели выберите «Дополнительные параметры системы». На вкладке "Дополнительно" нажмите кнопку "Переменные среды".

env vars< бр />

В разделе "Переменные пользователя" выберите "Путь" и нажмите кнопку "Изменить". Если у вас еще нет переменной с именем «Путь», нажмите кнопку «Создать», чтобы создать ее, введите «Путь» без имени и заполните значение, как описано ниже.


Всплывающее окно редактирования, к сожалению, отличается в зависимости от того, создаете ли вы новую переменную, имеете ли вы только один элемент на своем пути или у вас уже есть несколько элементов на вашем пути. В первых двух случаях вы просто получаете текстовое поле для значения. В третьем случае вы получаете список значений. В любом случае вы хотите добавить следующие три значения. Если вы получили список, добавьте их как отдельные элементы (см. скриншот ниже). Если вы получили текстовое поле, введите их через точку с запятой. Убедитесь, что они введены точно, иначе Windows не сможет найти программы.

редактирование переменных< бр />

Нажмите "ОК" во всех открытых окнах.

Установите драйверы для вашего программатора

В этом руководстве предполагается, что вы собираетесь использовать FabISP, FabTinyStarISP или другой программатор на основе USBtiny. Если вместо этого вы используете один из официальных программаторов Atmel, самый простой способ получить драйверы — установить Atmel Studio.

Программисты USBtiny используют универсальный драйвер libusb, но политика подписи драйверов Windows 10 усложняет установку. К счастью, есть инструмент, который помогает в этом. Загрузите Zadig и запустите его. Подключите программатор и выберите в списке устройство «USBtinySPI». (Если он не отображается, перейдите в меню «Параметры» и нажмите «Список всех устройств». Драйвер, который вы хотите установить (справа от зеленой стрелки), — это либо libusb-win32, либо libusb0. Нажмите кнопку "Установить драйвер". Это нужно сделать только один раз.

zadig

Проверка работоспособности

Теперь все установлено. Давайте проверим, что все работает.

Перейдите в меню "Пуск", найдите "Git Bash" и запустите его. Когда вы видите инструкции, говорящие вам открыть терминал в других учебниках, вы должны использовать это окно терминала.

Проверьте, правильно ли работают установленные нами команды:

Введите make -v и нажмите Enter. Вы должны увидеть:

Если вместо этого вы получаете сообщение об ошибке "команда не найдена", перепроверьте установку make и настройку переменной пути на наличие опечаток.

avr-gcc

Введите avr-gcc --version и нажмите клавишу ввода. Вы должны увидеть:

Если вместо этого вы получаете сообщение об ошибке "команда не найдена", перепроверьте установку набора инструментов Atmel и настройку переменной пути на наличие опечаток.

приятель

Подключите программатор к USB-порту и введите: avrdude -c usbtiny -p t45 и нажмите Enter. Вы должны увидеть:

Это означает, что avrdude успешно нашел ваш программатор, но не смог связаться с целевой платой (ожидается, потому что в данный момент у нас нет ничего, связанного с программатором).

Если вместо этого вы видите:

проверьте установку драйвера USB (шаги Zadig).

Если вы получили сообщение об ошибке "команда не найдена", проверьте установку avrdude и переменную пути.

Вы должны быть готовы к работе!


Эта работа находится под лицензией Creative Commons Attribution-ShareAlike 4.0 International License.

Внимание! Вашему браузеру не удалось подключиться к нашему безопасному платежному процессору Braintree Payments. Вы не сможете ввести информацию о своей кредитной карте на этапе оплаты при оформлении заказа, если это не будет исправлено.

Что стоит попробовать:

Пожалуйста, свяжитесь с нами, если у вас по-прежнему возникают проблемы с оплатой!

Если у вас есть робот Orangutan или 3pi или вы хотите использовать библиотеку Pololu AVR C/C++ по какой-либо другой причине, мы рекомендуем следовать краткому руководству по программированию Pololu AVR вместо этого руководства.

Хотя для программирования AVR можно использовать интегрированную среду разработки, такую ​​как Microchip Studio или Arduino IDE, вы также можете настроить свою собственную среду разработки, используя набор утилит командной строки. В этом руководстве объясняется, как настроить такую ​​среду в Windows, Mac OS X или Linux. Для каждой из этих систем первое, что нам нужно сделать, это установить AVR GCC, GNU Make и AVRDUDE. В этом руководстве фраза «AVR GCC» означает полный набор инструментов, включая компилятор, бинарные утилиты (binutils) и AVR Libc. Инструкции по установке этих необходимых компонентов зависят от конкретной операционной системы, которую вы используете. Имея эти инструменты, вы можете написать простой Makefile, поддерживающий компиляцию программы и загрузку ее на AVR.

Чтобы успешно пройти это руководство, вам необходимо знать, как использовать команды cd и ls для навигации по файлам на вашем компьютере. Вам также необходимо знать, как использовать текстовый редактор для создания и редактирования файлов.

Установка необходимых компонентов в Windows

Чтобы получить GNU Make и AVRDUDE в Windows, мы рекомендуем использовать MSYS2, дистрибутив программного обеспечения с открытым исходным кодом для Windows. Обязательно следуйте инструкциям на веб-сайте MSYS2, чтобы обновить пакеты, поставляемые с MSYS2. Затем установите AVRDUDE и сделайте это, выполнив следующую команду:

Затем запустите MSYS2 с помощью ярлыка «MinGW-w64 Win32 Shell» в меню «Пуск» (или запустив mingw32_shell.bat). Существуют и другие способы запуска MSYS2, и если вы запустите его неправильно, то 32-битная версия AVRDUDE, которую мы установили выше, не окажется в вашем PATH, и вы получите ошибку «команда не найдена» позже, когда вы попробуйте запустить AVRDUDE.

Если у вас возникли проблемы с использованием AVR GCC, предоставляемого Microchip, или AVRDUDE, предоставляемого MSYS2, другим вариантом является использование версий AVR GCC и AVRDUDE, предоставляемых Arduino IDE. Вам нужно будет добавить папку «hardware\tools\avr\bin» внутри вашей установки Arduino в переменную среды PATH.

Установка необходимых компонентов в Linux

GNU Make очень часто используется для создания программного обеспечения в Linux, поэтому, если вы используете Linux, возможно, оно у вас уже есть. Вы можете запустить «make -v» в оболочке, чтобы увидеть, есть ли он у вас. Если у вас нет make, установите его с помощью диспетчера пакетов вашей системы.

Далее необходимо установить набор инструментов AVR и AVRDUDE. В Ubuntu это можно сделать, запустив:

В Arch Linux вы можете запустить:

Что касается других дистрибутивов Linux, вам следует просмотреть список пакетов вашего дистрибутива, чтобы найти соответствующие инструменты разработки AVR.

Установка необходимых компонентов в macOS

Чтобы установить необходимые компоненты на macOS, мы рекомендуем сначала установить Homebrew. Затем выполните следующие команды, чтобы установить AVRDUDE и homebrew-avr:

Проверка предварительных условий

После того, как вы установили необходимые компоненты, вам следует открыть терминал/оболочку и попробовать запустить каждый инструмент, чтобы убедиться, что он доступен. Выполните следующие команды:

Если вы правильно установили необходимые компоненты, каждая из приведенных выше команд должна вывести номер версии и некоторую другую информацию о соответствующем инструменте.

Компиляция программы

Сначала создайте файл main.c со следующим содержимым:

Приведенный выше код C пытается мигать светодиодом, подключенным к контакту PD1 вашего AVR. Если у вас нет светодиода, подключенного к PD1, вы должны отредактировать его, чтобы использовать другой контакт. Вы также должны настроить определение F_CPU так, чтобы оно равнялось тактовой частоте вашего AVR в Гц.

Далее создайте файл Makefile со следующим содержимым:

Вы должны отредактировать переменную MCU в файле Makefile, чтобы она соответствовала названию части используемого вами AVR. Это будет передано в качестве аргумента как GCC, так и AVRDUDE.

Если вы не устанавливали программное обеспечение для программатора, то у вас не будет pavr2cmd, и вам следует вручную установить переменную PORT в Makefile, чтобы она была равна имени порта программирования программатора. Дополнительную информацию об определении имен портов см. в разделе 4.5.

Теперь вы можете запустить make для сборки программы.

Обратите внимание, что это простой Makefile, в котором нет реального отслеживания зависимостей. Он знает, что если main.c изменится, другие файлы необходимо будет перестроить, но он не учитывает изменения в других файлах, которые вы можете добавить, например, в файлах заголовков.

Программирование AVR

Вы можете запустить программу make для сборки кода, а также запрограммировать его на целевой AVR с помощью AVRDUDE. Если это не сработает, обратитесь к Разделу 5.6 за помощью по устранению неполадок.

Режим терминала AVRDUDE (опция -t) несовместим с программатором, потому что программатор выйдет из режима программирования и сбросит целевой AVR, если он не получит команд программирования в течение 1500 мс.

После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.

AVRDUDE — очень популярная программа командной строки для программирования микросхем AVR. Аврдуд версия 5.5 и выше имеет встроенную поддержку USBtinyISP! Ниже приведены инструкции для Windows и Mac о том, как установить правильную версию avrdude

Чтобы проверить правильность работы avrdude, откройте командную строку и выполните команду avrdude -c usbtiny -p m8, когда устройство подключено (горит зеленый светодиод).

tools_avrdudetest. jpg

Вы должны получить этот ответ, что означает, что он связался с программатором, но не смог найти подключенный чип.

Если программатор не найден, вы получите следующий ответ:

tools_avrdudeusbfail. jpg

Вы можете попробовать отключить и снова подключить его (может помочь сброс) или проверить, установлен ли драйвер и т. д.

Если вы подключите программатор к цели (скажем, целевой плате attiny2313) и запустите avrdude -c usbtiny -p t2313, вы должны получить следующее, что указывает на то, что он правильно взаимодействует с чипом.

Использовать его просто, просто укажите usbtiny в качестве типа программатора. Параметр порта игнорируется, так как он всегда использует USB.

Вы можете использовать параметр -B, чтобы указать скорость интернет-провайдера. По умолчанию значение равно 10, что означает тактовую частоту 100 кГц, это хорошо для целевых тактовых частот> 500 кГц. Если вам нужна высокая тактовая частота (400 кГц) для целевых частот > 4 МГц, вы можете использовать «-B 1» для ускорения программирования. Чтобы вычислить частоту SPI по значению задержки, используйте следующую формулу:

Тактовая частота SPI в кГц = 1000/(1,5+B), где B — значение задержки.

Как правило, тактовая частота должна быть как минимум в 4 раза больше, чем целевая тактовая частота. Попробуйте "-B 32", если у вас проблемы с тактовой частотой, это должно работать даже с тактовой частотой 128 кГц.

Не получается? Не волнуйтесь, помощь доступна на форумах!

Чтобы узнать, как установить WinAVR, посетите эту страницу с пошаговыми инструкциями. Убедитесь, что у вас установлена ​​версия от 20 декабря 2007 г. или новее. У этого есть avrdude 5.5 с поддержкой usbtiny!

Не забудьте также установить драйвер (дополнительную информацию см. на странице драйвера).

Если вы установите AvrMacPack, он поставляется с Avrdude 5.5, а usbtiny поддерживается по умолчанию!

В противном случае, если вы установили OSX-AVR, завершите выполнение этих шагов.

Загрузите zip-файл avrdude со страницы загрузки.

Замените avrdude и avrdude.conf везде, где они установлены, возможно, /usr/local/bin и /usr/local/etc, но не обязательно в зависимости от вашей системы разработки!

Чтобы узнать, где был установлен avrdude, введите avrdude в окно терминала, и откроется каталог. Чтобы переместить файлы, введите mv ~/usbtiny-avrdude/avrdude, предполагая, что новый двоичный файл avrdude находится в папке с именем usbtiny-avrdude в вашем домашнем каталоге. Чтобы узнать, где находится файл conf, введите avrdude -v в окно терминала. Сделайте то же самое для avrdude.conf.

(Конечно, делайте резервные копии старой версии.)

Закройте терминал и откройте новый. Если вы введете avrdude -c usbtiny -p t2313 (без подключенного usbtinyisp), должно появиться сообщение Не удалось найти USB-устройство 0x1781/0xc9f Если нет, проверьте правильность замены avrdude и avrdude.conf.

Если это все еще не работает, вы должны скомпилировать его из исходного кода, который гарантированно работает.

Если вы получили этот ответ, это проблема с правами доступа к USB. Вы можете запустить как root или.

tools_avrdudeerrors. jpg

Благодаря дружелюбному пользователю, есть быстрое исправление, поэтому вам не нужно запускать его от имени пользователя root:

Правило udev, помещенное в новый файл правил (название которого вы хотите) в /etc/udev/rules.d/ (или куда вы его ожидаете), установит разрешения для USBtinyISP. правильно.

SUBSYSTEM=="usb", SYSFS=="1781", SYSFS=="0c9f", GROUP="users", MODE="0666"
или, возможно,
SUBSYSTEM=="usb ", SYSFS=="1781", SYSFS=="0c9f", GROUP="adm", MODE="0666"
в зависимости от вашего дистрибутива

(одна строка!) обманывать. Sane делает что-то очень похожее на
предоставление обычным пользователям доступа к сканеру.

Другой пользователь предлагает:

Приведенные примеры udev не работают на некоторых системах, так как параметр SYSFS устарел. Следующее правило работает в последних системах Ubuntu и, вероятно, должно работать и в других более новых системах Linux:

SUBSYSTEM=="usb", ATTR=="USBtiny", ATTR=="0c9f", ATTRS==" 1781", MODE="0660", GROUP="dialout"

Впервые это руководство было опубликовано 10 июня 2013 года. Последний раз оно обновлялось 10 июня 2013 года.

Читайте также: