Программирование AVR Использование MS Visual Studio IDE для программирования AVR/Arduino Mon, December 09 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Использование MS Visual Studio IDE для программирования AVR/Arduino Печать
Добавил(а) microsin   

Я не очень большой фанат компании Microsoft, однако следует признать, что они сделали действительно потрясающую среду разработки Visual Studio. Особенно мне нравится в Visual Studio фича intellisense, которая автоматически дает подсказки по именам членов классов, функциям и полям структур, и для проектов AVR большого размера действительно предпочтительнее использовать Visual Studio IDE в сравнении с простым текстовым редактором.

Здесь приведена краткая инструкция (перевод статьи [1]) - как настроить среду Visual Studio 2008/2010 для использования тулчейна WinAVR и компилирования Ваших программ AVR для получения файлов в формате Intel Hex [2] (прошивка кода firmware микроконтроллера). Этот формат подходит для загрузки программы в память AVR/Arduino с использованием AVRDUDE и/или другого Вашего программатора (например, USBasp, AVRISP-mkII, JTAGICE mkII [3]). 

Примечание: предполагается, что у Вас уже установлены тулчейн AVR GCC (в составе пакета WinAVR или Atmel Studio), и конечно же среда разработки Microsoft Visual Studio.

[Шаг 1. Создание Makefile-проекта]

Запустите Visual Studio, зайдите в меню Файл -> Создать -> Проект..., выберите раздел Установленные шаблоны -> Visual C++ -> Проект, использующий makefile:

AVR-Visual-Studio-create-makefile-project-1

Введите имя проекта (Имя:), выберите папку, где будет расположен каталог проекта (Расположение:), уберите галочку "Создать каталог для решения", кликните OK.

Запустится мастер настройки проекта (см. скриншоты).

AVR-Visual-Studio-create-makefile-project-2

Настройте в окне "Параметры конфигурации отладки" следующие опции:

1. Командная строка построения: make

2. Команды очистки: make clean

3. Командная строка перестроения: make all

Примечание: можно ввести список команд, по одной в строке списка. В качестве команды перестроения здесь введены 2 команды, которые будут выполнены друг за другом:

make clean
make

AVR-Visual-Studio-edit-project-options-3

4. Вывод (для отладки): имя для выходного файла прошивки. Обязательно укажите расширение файла *.hex (GenericHID.hex, к примеру).

5. Путь поиска включений: %AVR32_HOME%\avr\include

Примечание: здесь %AVR32_HOME% это переменная окружения, в которой задан каталог установки WinAVR (например, C:\WinAVR-20100110) или тулчейна из Atmel Studio (например, c:\Program Files\Atmel\AVR Tools\AVR Toolchain). Вместо переменной окружения можно указать просто реальный путь до тулчейна.

AVR-Visual-Studio-create-makefile-project-3

Кликните Далее. В окне "Параметры конфигурации выпуска" поставьте галочку "Как в конфигурации отладки". Кликните Готово.

AVR-Visual-Studio-create-makefile-project-4

[Шаг 2. Сконфигурируйте проект]

Среда Visual Studio автоматически создала для Вас пустой makefile-проект. Теперь его нужно немного настроить, чтобы можно было начать писать программу для AVR.

Сделайте правый клик на названии проекта (myAVRproj) в дереве Обозревателя решений, и выберите в контекстном меню Свойства. Откроется окно редактирования свойств проекта с активной конфигурацией Debug.

AVR-Visual-Studio-edit-project-options-1

В разделе Свойства конфигурации -> Общие из выпадающего списка "Поддержка общеязыковой среды выполнения (CLR)" (Common Language Runtime Support (/clr)) выберите вариант Поддержка общеязыковой среды выполнения (CLR). Включение этой опции предоставляет изящную поддержку со стороны Intellisense.

Перейдите в раздел Свойства конфигурации -> NMake и убедитесь, что введенные здесь значения соответствуют необходимым командам make для сборки, очистки и перестроения (часто проекты поставляются с готовым Makefile, и команды в них могут отличаться). Также проверьте имя выходного hex-файла и убедитесь, что пути поиска включаемых файлов соответствуют ожидаемым или добавлены в соответствующие поле ввода. В строке ввода может быть несколько путей поиска, отделенных друг от друга точкой с запятой ';'. Если что-то не так, то исправьте.

AVR-Visual-Studio-edit-project-options-2

[Шаг 3. Создание и добавление Makefile]

Создайте файл Makefile для проекта, как Вы это обычно делаете. Лично я предпочитаю использовать готовые Makefile, которые генерирует система AVR Studio, или беру готовый Makefile из разных опубликованных AVR-проектов. Например, множество проектов с отличными Makefile можно найти в составе библиотек V-USB и LUFA [4]. В этом примере я буду использовать готовый Makefile проекта USB HID устройства из библиотеки LUFA-140928. Сам проект и его makefile находятся в папке Demos\Device\ClassDriver\GenericHID. Сделайте копию содержимого этой папки в папку Вашего проекта, который Вы только что создали. В моем примере папка проекта находится в каталоге c:\TEMP\myAVRproj (у Вас это может быть любой другой каталог на диске).

AVR-Visual-Studio-add-makefile-1

Файл Makefile обычно должен быть расположен в том же каталоге, где находятся компилируемые файлы исходного кода.

Перед использованием makefile проверьте все его опции, чтобы они соответствовали Вашему компилируемому проекту. Опции makefile редактируются простым текстовым редактором. Здесь я рассмотрю в качестве примера настройку опций для микроконтроллера AT90USB162 и тактовой частоты 16 МГц (макетная плата AVR-USB162).

LUFA_PATH. здесь должен быть указан полный или относительный путь до каталога lufa-LUFA-140928/LUFA. Пример:

LUFA_PATH = c:/asm/lufa-LUFA-140928/LUFA

MCU. Здесь нужно указать тип микроконтроллера. Название микроконтроллера нужно вводить маленькими буквами. Пример:

MCU = at90usb162

BOARD. Здесь указывается символическое название целевого устройства, для которого компилируется проект. Для макетной платы это MICROSIN162:

BOARD = MICROSIN162

F_CPU. Здесь указывается тактовая частота микроконтроллера в Герцах. Она зависит от установленного кварцевого резонатора и коэффициента деления прескалера AVR. Для приложений устройств USB на микроконтроллере AT90USB162 допустимы тактовые частоты ядра 8 или 16 МГц. Пример установки тактовой частоты 16 МГц:

F_CPU = 16000000

После того, как Вы скопировали файл makefile в каталог проекта, добавьте его в каталог Файлы ресурсов проекта Visual Studio. Для этого в Обозревателе решений сделайте правый клик на папке Файлы ресурсов в дереве проекта, и выберите Добавить -> Существующий элемент, и затем в открывшемся диалоге выбора файла выберите файл makefile проекта и кликните на кнопку Добавить.

AVR-Visual-Studio-add-makefile-2

Как вариант можно просто перетащить в Проводнике файл makefile в папку проекта Файлы ресурсов.

После этого будут работать команды меню Построение -> Очистить решение, Построение -> Построить решение (F7). Однако для удобства редактирования модулей кода их следует добавить в проект.

[Шаг 4. Добавление файлов исходного кода]

Перетащите файлы исходного кода с расширением *.c (для нашего примера Descriptors.c, GenericHID.c) в папку "Файлы исходного кода" Обозревателя решений. Заголовочные файлы с расширением *.h (Descriptors.h, GenericHID.h) перетащите в папку "Заголовочные файлы" Обозревателя решений.

AVR-Visual-Studio-add-source-files

[Шаг 5. Перепрошивка микроконтроллера]

Теперь для полного счастья осталось настроить функцию перепрограммирования микроконтроллера прямо из среды Visual Studio. Для этого через меню Сервис -> Внешние инструменты нужно добавить запуск утилиты для программатора [3]. В этом примере вместо программатора я буду использовать встроенный загрузчик (USB bootloader) Atmel DFU, а в качестве утилиты программирования буду использовать утилиту командной строки Flip DFU (batchisp.exe [5]).

Зайдите в меню Сервис -> Внешние инструменты, нажмите кнопку Добавить.

AVR-Visual-Studio-create-Flip-DFU-tool1

Для добавленного пункта меню Сервис отредактируйте следующие параметры:

Название: введите Flip DFU (можно ввести произвольное имя).

Команда: введите %ProgramFiles(x86)%\Atmel\Flip 3.4.7\bin\batchisp.exe - это полный путь до утилиты batchisp.exe в каталоге установки утилиты Atmel Flip.

Аргументы: введите -device AT90USB162 -hardware usb -operation erase f memory flash blankcheck loadbuffer GenericHID.hex program verify

Исходный каталог: введите $(ProjectDir)

Поставьте галочку "Использовать окно вывода".

AVR-Visual-Studio-create-Flip-DFU-tool2

После этих действий в меню Сервис появится дополнительный пункт Flip DFU, запускающий программирование памяти контроллера файлом GenericHID.hex через USB-загрузчик. Пример вывода после успешной операции программирования:

AVR-Visual-Studio-create-Flip-DFU-tool3

Примечание: для программирования плат Arduino, metaboard, AVR-USB-MEGA16 вместо batchisp.exe можно использовать утилиту AVRDUDE, она подойдет не только для работы с загрузчиками, но и с программаторами ISP. Для управления программатором JTAGICE mkII можно использовать утилиту jtagiceii.exe.

[Ссылки]

1. Use Visual Studio IDE to Program AVR/Arduino site:instructables.com.
2. Intel HEX: описание формата файла.
3. Программаторы для AVR.
4
. LUFA - бесплатная библиотека USB для микроконтроллеров Atmel AVR.

 

 

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


Защитный код
Обновить

Top of Page