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