Интеграция с avrdude — решение совместимости программаторов с AVR Studio 5, ATMEL Studio 6

AVR Studio 5, или ATMEL Studio 6 поддерживает лишь ограниченное число программаторов. Тем не менее остальные программаторы, не вошедшие в список можно интегрировать в среду разработки используя консольную программу прошивки микроконтроллеров Avrdude.

Начиная с версии AVR Studio 5 среда разработки основывается на оснастке Micrisoft Visual Studio 2012, которая содержит в свойствах проекта опцию по вызову произвольных пакетных команд. Выполнение команд привязано к основным событиям постоения проекта (Build Events) — команды, выполняемые до построения проекта и команды, выполняемые после построения проекта.

Настраиваем среду исполнения

Итак, открываем среду разработки AVR Studio 5, или ATMEL Studio 6, открываем существующий или создаем новый проект и открываем его свойства:

Свойства проекта

На экране в центральной области откроется вкладка со свойствами выбранного проекта. Выберите вкладку «Build Events»:

Вкладка события постоения

Прошивать микроконтроллер необходимо после успешного построения проекта, поэтому команды следует вводить в соответствующее поле «Post-build event command line» .

Создаем команду заливки прошивки в микроконтроллер

В это поле необходимо ввести команду, которая выполнит заливку только что сделанной прошивки в микроконтроллер. Для этого воспользуемся программой avrdude.exe.

Для того чтобы сформировать команду на заливку прошивки необходимо изучить параметры командной строки avrdude.exe для вашего типа микроконтроллера и сформировать макрос, определяющий путь к файлу, генерируемой прошивки (информацию по командам avrdude вы можете найти здесь: прошивание микроконтроллеров утилитой Avrdude). Я же приведу пример вызова команды для своего типа программатора jtagmkI.

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

"$(OutputDirectory)\$(MSBuildProjectName).hex"

Использование макросов предпочтительно тому, если вы пропишите путь к прошивке жестко, т.к. путь к файлу прошивки может измениться если вы, к примеру, перенесете свой проект в другую папку , переименуете проект или даже переключитесь из режима Debug в режим Release. Применение макросов гарантирует, что каждый раз при вызове события построения проекта команде будет сформирован правильный путь к прошивке.

Итак, разобравшись с параметрами команды у меня получилась строчка следующего вида:

avrdude.exe -c jtagmkI -p m32 -P COM3 -U flash:w:"$(OutputDirectory)\$(MSBuildProjectName).hex":i -U hfuse:w:^<0x91^>:m -U lfuse:w:^<0xFF^>:m

Осталось только определить путь к программе avrdude и убедиться что в опциях проекта стоит галочка напротив пункта «Генерировать .hex». Для этого заходим в свойствах проекта на вкладку «Buid» и ставим галочку:

Галочка напротив пункта Generate .hex file

Смотрим что получилось

Теперь всякий раз после того как вы будете выполнять построение проекта будет автоматически производиться вызов команды прошивания микроконтроллера.

В случае, если avrdude не сможет выполнить заливку программы среда разработки выдаст в окне «Список ошибок» соответствующую запись.

Конечно, с помощью данного способа, будет выполняться только выгрузка сделанной прошивки в микроконтроллер и вы не сможете использовать функции отладки, имеющиеся в среде исполнения. Но для случаев, когда отсутствие возможности отлаживать не принципиально, а покупать дорогой программатор из списка поддерживаемых по каким либо причинам не хочется или не целесообразно это вполне приемлемое решение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *