Загрузка прошивки через avrdude из интерфейса Microchip Studio
До недавнего времени я заливал прошивку для Atmel чипов через SinaProg - визуальный интерфейс для программы прошивальщика avrdude.exe
Сам код писал в Atmel Studio и ей компилировал. Скомпилил, свернул окно IDE, вызвал окно SinaProg, прошил. И вот так 10 лет. Привычка-с. Прошивал аналогом программатора USBASP авторства DiHalt.
И вот однажды, товарищ Львов Михаил подсказал что можно обойтись без SinaProg при рутинной работе с чипом при отладке.
Оказывается в Atmel Studio несколько версий назад появился интерфейс вызова внешних инструментов. Так и называется - External Tools. И в него можно задать вызов внешних программ с передачей параметров(!). Но удобно не только это - этот вызов можно вывести на панель инструмента отдельной кнопкой.
Открываем верхнее меню Tools - External Tools, нажимаем кнопочку Add, и вводим:
Title: называние инструмента. У меня мнемокод чип-компорт-скорость;
Command вводим полный путь до файла. В качестве примера я приведу путь до avrdude который находится в папке с Arduino
D:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
Arguments: аргументы для программы. Для каждого чипа получается своя, уникальная строка аргументов! В моём случае получилась вот такая строка:
-C"D:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" -v -patmega32u4 -cavr109 -PCOM3 -b57600 -u -D -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
Обяательно поставьте галочку Use output window чтобы вывод с avrdude программатора шёл в консоль IDE.
Запоминаем какой по счёту команда у нас добавилась!
После чего данный инструмент можно можно использовать вызывая его из верхнего меню. А можно добавить кнопкой. Берем любую интересующую нас панель и делаем ей Customize
Где нажимаем кнопку Add Command...
В окне выбора команды сначала слева выбираем Tools, а справа External Command 1. Если у вас команд больше одной до добавляем её по тому какой по счёту она была в окне External Tools. Нажимаем Ok.
Вот и всё. Теперь можно прошивать не сворачивая окна среды разработки.
Это не значит что SinaProg больше не нужен. Как минимум ей по прежнему удобно редактировать Fuse биты.