Site Loader

Atmel Studio 7

 Всем доброго дня. Сегодня немножко раcскажу про Atmel Studio 7 и для чего она нужна. Рано или поздно приходится осознать что Arduino удобная платформа и писать под нее да воли удобно, но за удобство нужно платить, как результат botloader занимает место микроконтроллера и из-за упрощения написание кода теряются драгоценные такты и память микроконтроллера. Если делать готовое устройство с нуля,  то выбирая Arduino мы ограничиваем себя выбором контроллера. Но что бы писать прошивку под микроконтроллер без Arduino нужно как минимум две вещи программатор (лучше с отладчиком) и программное обеспечение для написания самой прошивки. Для написания прошивок по микроконтроллеры Atmel которые часто используют в  Arduino компания Mikrochip предлагает использовать свою среду разработки Atmel Studio 7. Программатор же можно купить из Китая меньше чем за 3$ (правда без отладчика), или же купить оригинальный программатор.

  Atmel Studio 7 — это платформа для разработки и отладки всех приложений для микроконтроллеров AVR® и SAM. Atmel Studio 7 предоставляет собой удобную и простую в использовании среду для написания, сборки и отладки ваших приложений, написанных на C / C ++ или ассемблере. Он также легко подключается к отладчикам, программистам и наборам для разработки, поддерживающим устройства AVR ® и SAM. Atmtel Studio включает в себя Atmel Gallery, онлайн-магазин приложений, который позволяет расширить среду разработки с помощью плагинов, разработанных Microchip, а также сторонними разработчиками. Atmel Studio 7 может импортировать скетч Arduino в виде проектов C ++, что обеспечивает простой путь перехода между платформами. Платформа поддерживает более 500 устройств AVR и SAM. Скачать Atmel Studio 7 можно с официального сайта бесплатно.

 Для удобства на сайте есть онлайн и оффлайн установщик.

 Установка 

После запуска установщик он спросит согласия на лицензионное соглашение (нужно подтвердить)  и на отправку анонимных отчетов о работе (можно убрать галочку).

Дальше предложит выбрать нужные архитектуры с которыми будете работать, не нужные можно убрать для экономии места на диске.

В следующем шаге инсталлятор спросит нужны ли примеры кода программ.

 

Дольше все просто и понятно, система проверит необходимые зависимости и сам процесс установки, думаю описание здесь не требуется.

Настройки компилятора в Atmel Studio 6 и отладка на симуляторе

Интересная, но, в общем, неудивительная вещь при отладке — возможно, кому-то пригодится.

Заметил, что при пошаговом выполнении программы оказываюсь в той функции, которая в этот момент (да и вообще в данной конфигурации программы) не вызывается. Причем оказываюсь не в начале функции, а где-то в середине. Заинтересовался — какого, собственно?

Настройки компилятора (оптимизация) были следующие:
— уровень оптимизации -O2
— галки стояли на «Pack structure members together (-fpack-struct)» и «Prepare functions for garbage collection (-ffunction-sections)»

Попробовал поиграться с уровнями оптимизации — без толку. Выключаю -ffunction-sections — всё нормально. А жаба душит, включение этой опции даёт уменьшение размера почти в два раза.

В хелпе написано следующее:
«-ffunction-sections: Prepare functions for garbage collection, if a function is never used, its memory will be scrapped»
То бишь, если функция нигде не используется, то под неё вроде бы память не выделяется. Оно и логично, сборка мусора и все такое.

То, что меня удивило: при включенной опции — при попадании программы в середину нигде не использующейся функции выхожу я из неё буквально на следующем шаге и туда, куда мне и надо. Посмотрел окно «disassembly» — там, куда я попадаю, Сишный текст строчки из НЕИСПОЛЬЗУЕМОЙ функции есть, а ассемблерные инструкции все как надо (там идет сброс флага и выход из ИСПОЛЬЗУЕМОЙ функции, в которую я заходил и как раз должен из неё выйти) Что за ерунда — так и не понял, может, кто точно знает и расскажет? В железе пока не пробовал, но судя по ассемблерному тексту, все должно работать правильно.

В общем, резюмирую — при отладке этой опцией компилятора надо пользоваться аккуратно, а лучше не пользоваться.

Да, чуть не забыл, при использовании -ffunction-sections в опциях линкера должно быть включено «Garbage collect unused sections (-Wl—gc-sections)», а то толку от использования -ffunction-sections не будет.

Для интересующихся, про настройки компилятора и линкера: Optimisations of AVR programs using avr-gcc

Atmel Studio 6 (AVR Studio 6): обзор | avr

Все версии AVR Studio от Atmel отличались падучестью и мелкими неудобствами, и переход со старой версии на новую практически никаких улучшений не давал. Поэтому, попробовав версию AVR Studio 5, и не найдя в ней практически ничего полезного и нового, кроме смены интерфейса, я долго откладывал переход на новую версию AVR Studio:

Atmel Studio 6.

Основное достоинство новой версии бесплатной популярной среды разработки Atmel Studio 6 от Atmel — она теперь основывается на движке Visual Studio 2010, и имеет абсолютно такой же интерфейс, как и популярная среда разработки программ для PC — Microsoft Visual Studio 2010. Это упрощает освоение среды программирования AVR для тех, кто уже знаком с традиционным интерфейсом Visual Studio. Кроме того, значительно повысилась устойчивость в работе. Кратко перечислю полезные нововведения, которые мне удалось заметить:

1

. Привычная среда разработки Microsoft Visual Studio 2010 теперь доступна для AVR.
2. Интерфейс IDE стал работать надежнее.
3. Введена качественная подсветка синтаксиса.
4. В редакторе кода теперь есть автозавершение переменных, операторов, подсказки по исходному коду.
5. Теперь система разработки поддерживает не только AVR, AVR32 и XMEGA, но и платформу ARM® Cortex™-M.
6. В качестве ядра компиляции используется все тот же GCC, который устанавливается автоматически в процессе инсталляции Atmel Studio. Т. е. теперь не нужно отдельно устанавливать тулчейн WinAVR, все есть в одном инсталляторе.
7. Старые проекты AVR Studio легко импортируются в новую среду.
8. Вывод сообщений компиляции отфильтрованы по ошибкам (Errors) и предупреждениям (Warnings).
9. Есть возможность быстро перейти к реализации (описанию) функции, переменной или макроса, выделив его в редакторе и нажав Alt+G.
10. Появилась удобная фича переименования переменных, констант и функций через меню VAssistX -> Refactor -> Rename… (функция Refactor -> Rename также доступна в контекстном меню редактора кода).

Что, на мой взгляд, еще требует доработки:

1

. К сожалению, в контекстном меню нет привычного пункта «Перейти к определению ..» (Go to definition of ..), которое удобно для нахождений мест определения переменных, макроопределений и функций. Его заменяет горячая комбинация клавиш Alt+G.
2. Справочная система перенесена в онлайн и не очень удобна.

[Первоначальная настройка Atmel Studio 6]

Для удобства работы некоторые опции имеет смысл сразу настроить после первого запуска Atmel Studio.

1. Отступы и табуляции в текстовом редакторе: Сервис -> Параметры… -> Текстовый редактор -> Все языки -> Табуляция. Настройте нужный интервал табуляции в символах, и переключите радиокнопку типа табуляции на «Вставлять пробелы».

2. Все комментарии на русском подсвечиваются спелчекером Visual Assist X красным, как ошибочные, поэтому проверку синтаксиса в комментариях нужно отключить. Это делается через VAssistX -> Visual Assist X Options… -> Advanced -> Underlines -> снимите галочку «Underline spelling errors in comments and strings using ..».

[Настройка выбранного для компиляции тулчейна — Flavour Configuration]

Проект (исходный код на C и/или ASM) собирается компилятором GCC, к которому в комплекте идут библиотеки и файлы заголовков (хедеры, header, файлы с расширением *.h). Этот набор GCC+библиотеки+хедеры называются тулчейном (toolchain). Тулчейны могут быть разные — есть WinAVR (в него входит компилятор avr-gcc, библиотеки, заголовки, макросы), и есть Atmel Toolchain (который сделан компанией Atmel на основе GNU AVR toolchain, и в него также входит компилятор avr-gcc, библиотеки и заголовки).

Atmel Toolchain устанавливается совместно с Atmel Studio. Т. е. установив Atmel Studio, Вы сразу получаете весь необходимый набор инструментов для разработки. Это довольно удобно, потому что в ранних версиях AVR Studio приходилось загружать и устанавливать отдельно еще и пакет WinAVR.

Atmel Studio позволяет компилировать Ваш проект разными тулчейнами, в зависимости от выбранных текущих настроек. Т. е. можно в одном проекте настроить, к примеру, две конфигурации, в одной из которых проект будет компилироваться тулчейном Atmel, а в другой — тулчейном WinAVR. Можно даже создать несколько конфигураций тулчейнов, например для разных версий WinAVR.

Конфигурирование тулчейнов почему-то назвали несколько странным образом — «Flavour Configuration». Доступно конфигурирование через меню Tools (Сервис) -> Options (Параметры…) -> Toolchain -> Flavour Configuration. По умолчанию, сразу после установки Atmel Studio доступна только одна конфигурация — Native, которая соответствует тулчайну Atmel (тулчейнов ставится сразу несколько для разных платформ, к примеру, тулчейн для AVR установлен в папку C: \ Program Files \ Atmel \ Atmel Studio 6.0 \ extensions \ Atmel \ AVRGCC \ 3.3.2.31 \ AVRToolchain \ bin ).

Дополнительные тулчейны можно установить по кнопке Add Flavour. Нужно просто указать путь до установленного тулчейна. Например, для WinAVR-20100110 путь будет C : \ WinAVR-20100110 \ bin.

Выбрать используемый для проекта тулчейн можно в свойствах проекта, Advanced -> выпадающий список Toolchain Flavour.

Atmel Studio: настройка программирования Flip DFU | avr

В среде программирования Atmel Studio есть удобное меню для вызова внешних программ и утилит: Tools. В это меню с помощью редактора меню External Tools… можно добавить запуск сервисных программ. Например, это может быть запуск AVRDUDE для программирования микроконтроллера. В этой статье на примере описывается настройка программирования AVR ATmega34U4 через его штатный USB-загрузчик

FlipDFU (в среде Atmel Studio 7.0, Windows 10 Pro 64 бита, версия 1809).

Микросхемы AVR с интерфейсом USB можно программировать с помощью утилит командной строки. Для этого существует фирменная утилита Atmel batchisp.exe (примеры её использования см. по ссылкам [2,3,4]) и GNU-утилита dfu-programmer [1] (пример её использования см. в [5]).

[Программирование с помощью dfu-programmer.exe]

dfu-programmer.exe это бесплатная утилита командной строки, которая заменяет утилиту программирования batchisp.exe от Atmel. Подразумевается, что Вы скачали исполняемый файл dfu-programmer.exe, и записали его в произвольную папку на диске (в этом примере используется каталог C:\Program Files (x86)\dfu-programmer\).

Процесс по шагам в среде Atmel Studio:

1. Зайдите в меню Tools, выберите пункт меню External Tools…, откроется диалог настройки дополнительных пользовательских инструментов External Tools.

2. В поле ввода Title: введите произвольный текст, обозначающий Вашу запускаемую утилиту / действие. Этот текст появится как дополнительный пункт в меню Tools. Например, введите текст DFU-ATmega32U4.

3. Создайте командный файл program-DFU.bat следующего содержания:

"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 erase --force
"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 flash %1
"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 launch --no-reset

В первой строке утилита dfu-programmer.exe сотрет память FLASH микроконтроллера ATmega32U4, вторая запишет в него программу. Записываемый двоичный файл программы представлен опцией командной строки %1, это параметр, который будет передан в файл program-DFU.bat. Третья строка задает прямой запуск записанной программы без использования сторожевого таймера.

Командный файл program-DFU.bat запишите в корневой каталог проекта (там, где находится файл проекта Atmel Studio с расширением *.atsln), или можете сохранить его в любое доступное место. В этом примере для удобства я создал подкаталог util в папке проекта, и записал туда файл program-DFU.bat.

4. В диалоге External Tools заполните в поле ввода Command: путь до файла program-DFU.bat. Если он находится в текущем каталоге проекта, то просто укажите program-DFU.bat, а если он находится в подкаталоге util, то введите путь util\program-DFU.bat.

5. В поле Arguments: введите путь до файла прошивки, которая должна быть записана в память FLASH микроконтроллера:

$(BinDir)\$(TargetName).hex

Здесь имена, начинающиеся на $, это макросы, которые система Atmel Studio заменит на известные ей текстовые значения. $(BinDir) будет заменен на каталог, где находится конечный скомпилированный файл, и $(TargetName) будет замен на цель компиляции (по умолчанию это имя проекта без расширения). В результате в командный файл вместо %1 будет подставлен полный путь до файла прошивки.

6. Галочка «Use Output window» перенаправит весь вывод командного файла program-DFU.bat в окно Output среды разработки Atmel Studio. Если эту галочку снять, то будет запускаться черное окно консоли cmd.exe, и станет доступной опция галочки «Close on exit» (закрывать окно консоли по окончании работы утилиты).

Если поставить галочку «Prompt for arguments», то будет выводиться запрос на ввод аргументов для запуска, которые будут использоваться вместо поля Arguments:.

Галочка «Treat output as Unicode» иногда может помочь с правильным отображением русского текста в выводе консоли Output.

Нажмите в диалоге External Tools кнопку OK, на этом настройка завершена. В меню Tools появится дополнительный пункт DFU-ATmega32U4, который был введен в поле Title на шаге 2:

Подключите через USB программируемый микроконтроллер, и выберите в меню пункт Tools -> DFU-ATmega32U4. Запустится командный файл program-DFU.bat, и в окно Output будет выведен примерно такой текст:

C:\MyProj\FM-RRD-102>"C:\Program Files (x86)\dfu-programmer\dfu-programmer.exe"
 atmega32u4 erase --force 
Erasing flash...  Success
Checking memory from 0x0 to 0x6FFF...  Empty.
 
C:\MyProj\FM-RRD-102>"C:\Program Files (x86)\dfu-programmer\dfu-programmer.exe"
 atmega32u4 flash "C:\MyProj\FM-RRD-102\Release\FM-RRD-102.hex" 
Checking memory from 0x0 to 0x227F... Empty. 0% 100% Programming 0x2280 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success 0% 100% Reading 0x7000 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success Validating... Success 0x2280 bytes written into 0x7000 bytes memory (30.80%).

Можно создать на панели инструментов кнопку для запуска нового созданного пункта меню. Для этого перейдите в меню Tools -> Customize…, откроется окно диалога настройки панелей управления. Перейдите на закладку Commands, выберите выпадающий список Toolbar:, в выпадающем списке выберите Device and Debugger, нажмите кнопку Add Command…, в списке Categories: выберите Tools, в списке Commands: выберите External Command 1. Нажмите OK и Close. На панели Atmel Studio появится новая кнопка DFU-ATmega32U4.

[Ссылки]

1. dfu-programmer site:github.io.
2. Макетная плата AVR-USB162.
3. Макетная плата AVR-USB162MU.
4. Использование MS Visual Studio IDE для программирования AVR/Arduino.
5. Альтернативы для Atmel DFU Flip.

alexxlab

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

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