Работа с AVRA под Windows

Материал из SEWiki
Перейти к: навигация, поиск

Важно: есть проект WinAVR, обновлявшийся в последний раз в 2010 году. Его ставить не надо! Он не поддерживается и не обновляется. Например, если в установщике поставить галочку "обновить PATH" и системный PATH довольно длинный, то он просто убьётся, надо будет восстанавливать. Вроде бы установщик бэкапит старый куда-то, но я бы на это не надеялся.

Теперь работающий на Windows 7 алгоритм:

  1. Предполагается, что вы работаете с архивом примеров от Михаила Юрьевича.
  2. Предполагается, что у вас уже стоит bash, make, tail, awk и прочие утилиты (в противном случае как вы вообще живёте?). Некритично, при желании можно написать примерно то же самое и на батниках.
  3. Ставим Arduino Studio. Отсюда возьмём avrdude и драйвера (всё должно встать автоматически).
  4. В комплекте используемого нами ассемблера AVRA нет. Он берётся в исходниках здесь и собирается при помощи MinGW. Я у себя на компьютере собрал, можно скачать тут. Стоит добавить в PATH.
  5. Теперь должна работать сборка hex-файлов.
  6. Добавьте в PATH папку с avrdude (у меня - C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\) и папку с avrdude.conf (у меня - C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\).
  7. Добавляем следующие строки в начало скрипта detect.sh (после shebang):
if [ "$OS" == "Windows_NT" ]; then
    port=$(wmic PATH Win32_SerialPort WHERE "Caption LIKE '%arduino%'" GET DeviceID | tail -n +2 | awk '{ print $1; }')
    if [[ $port == COM* ]]; then
        echo $port
        exit
    else
        echo Unable to detect COM port
        exit 1
    fi
fi

Альтернативный способ - зайти в диспетчер устройств и посмотреть номер COM-порта у подключённой Arduino в соответствующем поддереве, а потом захардкодить его в скрипт.

Теперь должен работать и upload.sh (при подключённой Arduino).