May 18, 2023

Загрузка прошивки через avrdude из интерфейса Microchip Studio

До недавнего времени я заливал прошивку для Atmel чипов через SinaProg - визуальный интерфейс для программы прошивальщика avrdude.exe

SinaProg

Сам код писал в 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.

Запоминаем какой по счёту команда у нас добавилась!

External Tools

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

Customize

Где нажимаем кнопку Add Command...

В окне выбора команды сначала слева выбираем Tools, а справа External Command 1. Если у вас команд больше одной до добавляем её по тому какой по счёту она была в окне External Tools. Нажимаем Ok.

Вот и всё. Теперь можно прошивать не сворачивая окна среды разработки.

Это не значит что SinaProg больше не нужен. Как минимум ей по прежнему удобно редактировать Fuse биты.