Работа с AVRA под Windows — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: «Важно: есть проект WinAVR, обновлявшийся в последний раз в 2010 году. Его ставить '''не надо'''! О…»)
 
Строка 1: Строка 1:
 
Важно: есть проект WinAVR, обновлявшийся в последний раз в 2010 году. Его ставить '''не надо'''! Он не поддерживается и не обновляется. Например, если в установщике поставить галочку "обновить PATH" и системный PATH довольно длинный, то он просто убьётся, надо будет восстанавливать. Вроде бы установщик бэкапит старый куда-то, но я бы на это не надеялся.
 
Важно: есть проект WinAVR, обновлявшийся в последний раз в 2010 году. Его ставить '''не надо'''! Он не поддерживается и не обновляется. Например, если в установщике поставить галочку "обновить PATH" и системный PATH довольно длинный, то он просто убьётся, надо будет восстанавливать. Вроде бы установщик бэкапит старый куда-то, но я бы на это не надеялся.
  
# Предполагается, что у вас уже стоит bash и make (в противном случае как вы вообще живёте?). Некритично, при желании можно написать примерно то же самое и на батниках.
+
# Предполагается, что у вас уже стоит bash, make, tail, awk и прочие утилиты (в противном случае как вы вообще живёте?). Некритично, при желании можно написать примерно то же самое и на батниках.
# Ставим [https://www.arduino.cc/en/Main/Software Arduino Studio]. Отсюда возьмём `avrdude`.
+
# Ставим [https://www.arduino.cc/en/Main/Software Arduino Studio]. Отсюда возьмём <code>avrdude</code> и драйвера (всё должно встать автоматически).
# В комплекте используемого нами ассемблера AVRA нет. Он берётся в исходниках [http://sourceforge.net/projects/avra/files/ здесь] и собирается при помощи MinGW. Я у себя на компьютере собрал, можно скачать [[Медиа:avra.zip|тут]].
+
# В комплекте используемого нами ассемблера AVRA нет. Он берётся в исходниках [http://sourceforge.net/projects/avra/files/ здесь] и собирается при помощи MinGW. Я у себя на компьютере собрал, можно скачать [[Медиа:avra.zip|тут]]. Стоит добавить в PATH.
# To be continued...
+
# Теперь должна работать сборка hex-файлов.
 +
# Добавьте в PATH папку с avrdude (у меня - <code>C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\</code>) и папку с <code>avrdude.conf</code> (у меня - <code>C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\</code>).
 +
# Добавляем следующие строки в начало скрипта detect.sh (после shebang):
 +
<pre>
 +
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
 +
</pre>
 +
Альтернативный способ - зайти в диспетчер устройств и посмотреть номер COM-порта у подключённой Arduino в соответствующем поддереве, а потом
 +
захардкодить его в скрипт.
 +
# Теперь должен работать и <code>upload.sh</code> (при подключённой Arduino).

Версия 12:45, 13 октября 2015

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

  1. Предполагается, что у вас уже стоит bash, make, tail, awk и прочие утилиты (в противном случае как вы вообще живёте?). Некритично, при желании можно написать примерно то же самое и на батниках.
  2. Ставим Arduino Studio. Отсюда возьмём avrdude и драйвера (всё должно встать автоматически).
  3. В комплекте используемого нами ассемблера AVRA нет. Он берётся в исходниках здесь и собирается при помощи MinGW. Я у себя на компьютере собрал, можно скачать тут. Стоит добавить в PATH.
  4. Теперь должна работать сборка hex-файлов.
  5. Добавьте в PATH папку с avrdude (у меня - C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\) и папку с avrdude.conf (у меня - C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\).
  6. Добавляем следующие строки в начало скрипта 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 в соответствующем поддереве, а потом захардкодить его в скрипт.

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