Работа в atmel studio 7
Урок 2
Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.
Запускаем Atmel Studio.
Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project
У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки «browse» в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта «GCC C Executable Project», дадим проекту имя, например «Test01». Галочка слева от надписи «Create directory for solution» означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем «OK»
В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.
Здесь мы также нажимаем «OK»
Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида
Теперь немного настроим наш проект.
Зайдём в его свойства с помощью меню Project -> Test01 Properties
Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку «сохранить всё» в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)
После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария — наоборот — сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта
В принципе, данный комментарий мы можем либо удалить, как это сделаю я, либо исправить, введя вместо user, скажем, своё имя или ещё что-то, для того, чтобы обозначить автора.
Теперь другой вид комментария. Если мы хотим написать комментарий в виде одной строки, то целесообразно отметить этот комментарий специальным значком в виде двух обычных слешей, предназначенных именно для обозначения однострочного комментария. Данный значек ставится вначале строки и действует до конца строки. У нас также есть с вами для этого уже пример в коде. Здесь среда нам подсказывает, где именно следует начинать писать свой код
Данный комментарий можно будет также удалить.
Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе «соберём его», так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу «F7». После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение
Также в папке «Test01Debug» нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят — прошивка — файл «Test01.hex». Данный файл мы и будем «заливать» в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.
Studio 7 is the integrated development platform (IDP) for developing and debugging all AVR® and SAM microcontroller applications. The Atmel Studio 7 IDP gives you a seamless and easy-to-use environment to write, build and debug your applications written in C/C++ or assembly code. It also connects seamlessly to the debuggers, programmers and development kits that support AVR ® and SAM devices.
Additionally, Studio includes Atmel Gallery, an online app store that allows you to extend your development environment with plug-ins developed by Microchip as well as third-party tool and embedded software vendors. Studio 7 can also seamlessly import your Arduino sketches as C++ projects, providing a simple transition path from Makerspace to Marketplace.
Key Features
- Support for 500+ AVR and SAM devices
- Vast source code library, including drivers, communication stacks, 1,600+ project examples with source code, graphic services and touch functionality through Advanced Software Framework (ASF)
- IDE extensions through Atmel Gallery, the online apps store, for development tools and embedded software from Microchip and third parties
- Tune capacitive touch designs, validate system performance, monitor power consumption, and real-time data and trace graphing with Atmel QTouch Composer
- Configure and test the performance of wireless designs with the Wireless Composer running on the target
- Write and debug C/C++ and assembly code with the integrated compiler
- Advanced debugging features include complex data breakpoints, nonintrusive trace support (SAM3 and SAM4 devices), statistical code profiling, interrupt trace/monitoring, polled data tracing (Cortex-M0+ devices), real-time variable tracking with optional timestamping.
- Integrated editor with visual assist
- Project wizard allowing projects created from scratch or from a large library of design examples
- In-system programming and debugging provides interface to all Atmel in-circuit programmers and debuggers
- Create transparent debug views into CPU and peripherals for easy code development and debugging
- Full chip simulation for an accurate model of CPU, interrupts, peripherals, and external stimuli
The Data Visualizer plug-in captures and displays run-time power data from your application when used with the Power Debugger, or a supported Xplained-PRO board. You can profile the power usage of your application as part of a standard debug session. Sampling the program counter during power measurements makes it possible to correlate power spikes with the code that caused them.
Atmel Studio 7 features seamless one-click import of projects created in the Arduino development environment. Your sketch, including any libraries it references, will be imported into Studio 7 as a C++ project. Once imported, you can leverage the full capabilities of Studio 7 to fine-tune and debug your design. Atmel Studio 7 fully supports the powerful embedded debugger on the Arduino Zero board. For other Arduino boards, shield-adapters that expose debug connectors are available, or switch to one of the many available Xplained-Mini/PRO boards to fully leverage the Microchip HW eco-system. Regardless of what you choose, you will surely make something amazing.
The Help system in Atmel Studio 7 supports on-line as well as off-line access, meaning that you will always get the latest documentation when you are connected, and that it will stay with you when you are mobile. Device aware context sensitivity and an IO-view are contained in the editor, allowing you to look up register-specific information from the datasheet of the part you are using without leaving the editor. The AVR-Libc documentation further enhances the context sensitive Help system, allowing you to look up function definitions easier than ever before. Do you still want to join?
Atmel Studio 7 is free of charge and is integrated with Advanced Software Framework (ASF)—a large library of free source code with 1,600 project examples. ASF strengthens Atmel Studio by providing, in the same environment, access to ready-to-use code that minimizes much of the low-level design required for projects. Standard IDEs are suited for creating new software for an MCU project. In addition to this, the Atmel Studio 7 IDP also:
- Facilitates reuse of existing software and, by doing so, enables design differentiation.
- Supports the product development process with easy access to integrated tools and software extensions through Atmel Gallery.
- Reduces time to market by providing advanced features, an extensible software eco-system, and powerful debug integration.
Contains the Atmel Gallery app store
You can download and securely purchase both Atmel and third-party compilers, advanced debugging tools, real-time operating systems, communication systems and other extensions and plug-ins straight from the Atmel Studio 7 development platform and via gallery.atmel.com. The Atmel Gallery app store provides development tools and embedded software for MCU-based application design.
When you encounter a need for a tool in the middle of your development process, or are seeking some basic source code, you won’t have to leave your environment to search for your solution. From Atmel Gallery, you can also download a plug-in that will give you direct access to Atmel Spaces, our new collaborative workspace.
Для радиолюбителей, которые до определенного времени не использовали микроконтроллеры в своих конструкциях, эти устройства остаются какими-то непонятными, или даже загадочными. Пелена “таинственности” начинает возникать с того момента, когда впервые открывается даташит (техническое описание) микроконтроллера, состоящего примерно из 300 страниц мелкого шрифта, вызывающий панический ужас лишь от мыслей, что запомнить это просто невозможно…
На самом деле все гораздо проще чем, кажется. Любой микроконтроллер можно представить в виде устройства, в котором есть определенное количество совершенно одинаковых и равнозначных выводов, которые как реле, могут подключаться к нулю, напряжению питания, или вовсе отключаться. И все, весь смысл только в этом.
Вспомните, первая электрическая вычислительная машина была сделана на простых реле.
Эти переключения происходят по командам, которые мы даем. Самый простейший вариант команды – это тумблер. Включили тумблер – замкнется реле, выключили тумблер – разомкнется. Допустим у нас 8 реле, к которым подключены лампочки, и есть 8 тумблеров. Можно включить любую в любой момент. Захотелось мне сделать бегущий огонек, и буду я последовательно включать и выключать каждый тумблер. Так вот последовательность включения тумблеров и есть программа. Эта последовательность команд определяется только вами. Но, ведь так неудобно и очень медленно. Можно ускорить работу, если применить перфорированные карты. Помните, были такие бумажки с дырками. Можно эту бумажку протаскивать между расположенными в ряд контактами. Там где дырка, там и контакт. А если возникает контакт, то включается реле, которая зажигает лампочку. Таким образом, можно запрограммировать последовательность включения лампочек. В современных микроконтроллерах такие переключения происходят в миллионы раз быстрее, а вот принципы не поменялись. В микроконтроллерах команды записываются в виде конкретных чисел, определяемых производителем, но мы, люди, привыкли говорить словами, и обозначать наши действия символами, а не числами. Вот и были созданы аббревиатуры – сокращения от основных слов, каждое из которых означает какую-то команду. Команда для микроконтроллера – это определенное число, и оно конкретно для данного вида контроллера. Конечно – же есть переводчики, которые переводят аббревиатуры в цифры, их называют макропроцессором языка.
Для повышения функциональности микроконтроллеров производители стали внедрять готовые функциональные блоки. Например, такое устройство как АЦП (аналогово-цифровой преобразователь) и ШИМ (широтно-импульсная модуляция) или USART (модуль последовательной передачи данных). Входы и выходы этих электронных модулей привязаны к определенным выводом микроконтроллера и подключаются с помощью определенных команд (как реле). На какие выводы подключаются эти устройства, хорошо видно на схематических изображениях микроконтроллера в даташите. Процесс включения, настройки модулей и выводов микроконтроллера называется инициализацией устройства. В микроконтроллере может быть достаточно много встроенных модулей, для каждого из них есть соответствующие команды.
Таким образом, микроконтроллеры разных производителей работают по одинаковым принципам, отличаются лишь структурой внутренней памяти, системой команд (аббревиатурой и их количеством), разрядностью, наличием встроенных устройств и быстродействием.
Изучив один тип микроконтроллеров, достаточно просто начать работать с другими.
Из всего сказанного можно сделать вывод, что микроконтроллер, по сути своей, простой коммутатор, где последовательность переключений определяется программой, которую создает программист.
Чтобы написать программу, нужно четко представлять, как должно работать ваше устройство, т.е. нужно составить алгоритм его работы.
Алгоритм, (от имени восточного средневекового математика, Аль-Хорезми) — точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за определенное время.
Возьмите за правило, с самого начала рисовать или записывать алгоритмы будущей программы, тогда 80% успеха уже гарантировано. Составив правильный алгоритм, с самого начала можно избежать множества “подводных камней”, которые встречаются в процессе программирования.
При составлении алгоритма вы должны придерживаться нескольких обязательных правил:
• Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
• Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
• Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.
• Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
На рисунке представлены основные структурные элементы алгоритмов. Как видите их немного, всего 8.
Для того чтобы составить алгоритм программы, необходимо из условия выделить те величины, которые будут входными данными и четко сформулировать, какие именно результаты должны получиться. Другими словами, условие задачи требуется сформулировать в виде “Что имеем . Что с этим данными требуется сделать” – это называется – Постановка задачи.
Блок-схема алгоритма должна составляться “сверху вниз”, чтобы поэтапно конкретизировать каждый блок до элементарных операций.
При таком подходе, каждый блок будет соответствовать определенным инструкциям программы и может быть легко написан на любом языке программирования.
Не хочу вас загружать теоретическим материалом, со временем вы сами поймёте значимость алгоритмов при постановке задачи и если захотите, то изучите более подробно. Необходимый минимум я изложил.
А теперь вернемся к практическому применению алгоритмов. Попробуем написать программу, где мы будем включать и выключать всего один светодиод. Начнем с технического задания и постановки задачи. Не путайте эти два разных понятия. Техническое задание более объемное понятие, включающее все исходные условия, на основе которых необходимо получить конечные заданные параметры. Например: имеется микроконтроллер ATMEGA8, кнопка, гасящий резистор на 200 Ом, светодиод, источник питания 5 Вольт . Задание: составить принципиальную схему, где программно, последовательным нажатием на кнопку нужно включать или выключать светодиод (оговариваются, номера контактов, типоразмеры деталей, разводка печатной платы и еще множество технических параметров… ). В техническое задание входит постановка задачи. Например: при установке единичного состояния на входе 0 порта PB программа возвращается в начало, при сбросе входа 0 порта PB, программа инвертирует значение выхода 7 порта PB. На основе поставленной задачи составляем алгоритм будущей программы. Так как решений поставленной задачи может быть несколько, то и алгоритмов может быть несколько.
Один из алгоритмов может выглядеть таким образом.
Как видно, никаких сложных или запутанных структур здесь нет, все логично и представлено простыми элементами. Теперь можно приступить к самой программе.
Любая программа начинается с описания. Описание может быть произвольным, как вам нравится, но желательно указать какой микроконтроллер используется, его тактовую частоту, особенности программы и её функции. Нередко в описании указывается имя автора программы, время, когда была написана программа. Описание программы называют “шапкой”. Описание выполняется в виде комментариев и начинается звездочкой с косой чертой в конце – /* [Текст] */ . Текст может занимать несколько строк. Если текст занимают одну строчку, то перед комментариями ставится двойными косыми черточками – //[Текст]
Так будет выглядеть программа на языке СИ.
В начале программы указаны название проекта, функции выполняемые программой, используемый процессор и его тактовая частота.
После шапки прописаны директивы.
Директива – это предписание компилятору языка (ассемблер, СИ или другому языку программирования) выполнить то или иное действие в момент компиляции. В свою очередь – компиляция – это перевод написанной программы в машинный код и запись в виде специального файла. Если файл не формируется, а происходит простой перевод, то такой процесс называется трансляцией. Запомните, что директивы не транслируются в код, они указывают каким образом этот код формировать.
Директивы начинаются с решетки, лишь затем идет ее название. Мы их рассмотрим в процессе изучения программирования.
В нашей программе встречаются директивы:
#Define – директива замены. Везде, где будет встречаться выражение F_CPU, будет подставлена частота 16000000UL
#Include – директива вставки файла или библиотеки, устанавливает библиотеку ввода-вывода io.h (расширение h – хедер файл), который содержит описание адресов регистров, векторов прерываний, имен битов регистров микроконтроллера ATMega8
Любая программа, написанная на языке Си, должна иметь следующий минимальный фрагмент текста, который называют функцией main:
У функции main есть заголовок – int main(void) и тело – оно ограниченно фигурными скобками <>. В тело функции прописывается основная программа.
В Си часто говорят о возвращаемом значении. Дело в том, что в любой функции происходит дейстсвия связанные с изменением переменных, например сложение, вычитание, сопоставление определенных значений, математические вычисления. Результатом подобных действий и будет возвращаемое значение функции. Если заведомо не нужно ничего возвращать, то прописывается слово void (пустой).
Перед именем функции main указывается тип возвращаемого (вычисляемого) значения int, которому соответствует целое 2-х байтное число с диапазоном значений от – 32768 до 32767.
После имени функции в скобках () указываются параметры, которые определяют условия работы функции при ее вызове. Если параметров нет – используется ключевое слово void
Для программирования микроконтроллеров, внутри тела функции main, обязательно прописывается бесконечный цикл while(1) <>, у которого так же есть заголовок и тело. Единица в параметрах означает, что значения цикла всегда истина и цикл будет выполнятся бесконечно т.е.как только основная программа дойдет до конца, она не зависнет, а начнется с начала. В теле цикла и будет наш код.
В Си нередко для завершения выполнения функции используется ключевое слово return.
Далее следует инициализация портов микроконтроллера. Инициализация нужна для того, чтобы подготовить к работе необходимые разъемы микроконтроллера или активировать встроенные устройства. В нашем случае, мы разъем порта PB0 включаем на вход и подсоединяем к нему встроенный (называется подтягивающий) резистор, который подключен к плюсу источника питания контроллера. А разъем PB7 включаем на выход.
Рассмотрим подробнее, как можно управлять портами.
Чтобы можно было управлять работой микроконтроллера, включать определенные устройства устанавливать их режим работы, и в частности портами, существует специальная область памяти, где есть множество ячеек, представляющие из себя единичные биты т.е. в каждую ячейку можно прописать или 0 или 1. Каждая ячейка определяет конкретную функцию, которую выполнит контроллер. Чем сложнее микроконтроллер, тем больше управляющих ячеек, и тем сложнее их запомнить.
Чтобы упростить управление микроконтроллером, разработчики решили систематизировать биты в функциональные группы по 8 бит. Получились 8 битные регистры, которые расположены один за другим, имеющие каждый свое название. Чтобы стало понятно, создадим произвольную таблицу, где каждая строка состоит из 8 ячеек и имеет свой порядковый номер, соответствующий одному регистру. Пусть наша таблица состоит из 128 ячеек или из 16 восьмибитных регистров.
Таким же образом, произвольно создадим три регистра: DdrB, PinB, PortB, с помощью которых будем управлять портами микроконтроллера.
Регистр DdrB (DdrB0….DdrB7) будет переключать соответствующий порт в два режима: ввод и вывод. В режиме ввода можно будет считывать состояние на разъемах контроллера и сохранять значения портов в регистр PinB (PinB0….PinB7) , а в режиме вывода выдавать в порт данные из регистров
PortB(PortB0….PortB7).
Следующая схема показывает принцип работы портов. Если упрощенно, то регистр DdrX переключает выводы контроллера между регистрами PinX и PortX как контактами реле.
По такому же принципу сгруппированы в регистры управления и другие встроенные устройства микроконтроллера. Таким образом, управлять микроконтроллером становиться логично и очень просто. Регистры, которые управляют встроенными устройствами, называются – регистрами ввода – вывода, и распологаются в оперативной статической памяти контроллера – SRAM.
Таблица регистров ввода-вывода для микроконтроллера ATMEGA8 представлена ниже. Если присмотреться, то видно, что регистры портов расположены по адресам 0х10…0х18 и ничем не отличаются от тех, которые мы привели в качестве примера.
По умолчанию, все порты микроконтроллера находятся в режиме ввода. Для того, чтобы включить 7 порт в режим вывода нужно записать в регистр общего назначения число 0b10000000 в двоичном дредставлении или 0х80 в шестнадцетиричном или 128 в деятичном . Регистрами общего назначения называются первые 32 регистра (R0….R31) оперативной памяти – SRAM, из них для обмена данными чаще всего пользуются (R16…R31).
(1 > Cдвиг двоичных разрядов числа вправо.
Второй операнд у этих операции должен указывать, на сколько позиций сдвигать разряды. Те разряды, которые выходят за рамки числа, теряются, а вновь прибывающие приходят с нулями при сдвиге влево. При сдвиге вправо знакового числа, если оно отрицательное, происходит заполнение числа единицами, для сохранения знака.= ИСКЛЮЧАЮЩЕЕ ИЛИ с присваиванием.
Все операции присваивания – двухоперандные и требуют, чтобы левым операндом была переменная, значение которой они изменяют. Если тип правого операнда не совпадает с левым, правый операнд будет преобразован к типу левого. Результатом любой операции присваивания будет число, занесенное в переменную, стоящую слева от операции.
Рассмотрим эту же программу на языке Ассемблер.
Программа соответствующая нашему алгоритму будет выглядеть таким образом:
В ассемблере директивы имеют те же назначения, что и в СИ, но начинаются они не с решетки а с точки.
.INCLUDE «имя_файла» – директива вставки файлов – в программу будет вставлен файл с указанным именем. Содержимое этого файла будет откомпилировано полностью или до директивы .EXIT которая указывает место выхода из файла. В нашей программе мы вставляем файл, который описывает нумерацию контактов, встроенные устройства и дополнительные функции микроконтроллера ATmega 8.
.DEF Символическое_имя = Регистр назначить регистру символическое имя. В нашем случае символическим именем temp мы назвали регистр r16. Далее в программе имя temp всегда будет означать регистр r16.
.CSEG – программный сегмент памяти. Определяет начало программного сегмента с помощью директивы .ORG.
.ORG выражение установить положение в сегменте. Если выбран всего один программный сегмент, и предполагается что сегмент начинается с нулевой строки то эти директивы можно не прописывать. Возможно использование нескольких программных сегментов, тогда каждому сегменту нужно указать, с какого номера строки он начинается. Строка в программном сегменте имеет длину одного слова (2 байта).
Более подробно и в качестве постоянного справочника рекомендую учебное пособие Зубарева Александра Александровича по ассемблеру для микроконтроллеров AVR.
Мнемонические команды ассемблера можно посмотреть в справочнике по ассемблеру. Каждая команда в ассемблере четко определена и предполагает конкретное явное действие, поэтому составлять программу более просто, как писать слово из букв. Конечно, есть и свои особенности, связанные с устройством процессора. По мере накопления опыта, все нюансы будут казаться как само собой разумеющееся и не будут вас сильно напрягать.
Функционирование того, что мы написали, можно посмотреть в специальной отладочной программе Proteus. Файлы для эмуляции выложены здесь:
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, учредитель журнала «Датагор»
В следующей статье продолжим изучение программирования на языке СИ не забывая об ассемблере и отладочной программе Proteus. Подробно разберем принципы отладки написанной программы в AtmelStudio 6.
И в конце этой статьи небольшое видео от Александра Писанца:
Atmel studio 7 руководство на русском
Урок 2
Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.
Запускаем Atmel Studio.
Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project
У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки «browse» в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта «GCC C Executable Project», дадим проекту имя, например «Test01». Галочка слева от надписи «Create directory for solution» означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем «OK»
В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.
Здесь мы также нажимаем «OK»
Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида
Теперь немного настроим наш проект.
Зайдём в его свойства с помощью меню Project -> Test01 Properties
Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку «сохранить всё» в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)
После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария — наоборот — сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта
В принципе, данный комментарий мы можем либо удалить, как это сделаю я, либо исправить, введя вместо user, скажем, своё имя или ещё что-то, для того, чтобы обозначить автора.
Теперь другой вид комментария. Если мы хотим написать комментарий в виде одной строки, то целесообразно отметить этот комментарий специальным значком в виде двух обычных слешей, предназначенных именно для обозначения однострочного комментария. Данный значек ставится вначале строки и действует до конца строки. У нас также есть с вами для этого уже пример в коде. Здесь среда нам подсказывает, где именно следует начинать писать свой код
Данный комментарий можно будет также удалить.
Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе «соберём его», так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу «F7». После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение
Также в папке «Test01Debug» нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят — прошивка — файл «Test01.hex». Данный файл мы и будем «заливать» в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.
Урок 2
Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.
Запускаем Atmel Studio.
Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project
У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки «browse» в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта «GCC C Executable Project», дадим проекту имя, например «Test01». Галочка слева от надписи «Create directory for solution» означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем «OK»
В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.
Здесь мы также нажимаем «OK»
Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида
Теперь немного настроим наш проект.
Зайдём в его свойства с помощью меню Project -> Test01 Properties
Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку «сохранить всё» в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)
После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария — наоборот — сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта
В принципе, данный комментарий мы можем либо удалить, как это сделаю я, либо исправить, введя вместо user, скажем, своё имя или ещё что-то, для того, чтобы обозначить автора.
Теперь другой вид комментария. Если мы хотим написать комментарий в виде одной строки, то целесообразно отметить этот комментарий специальным значком в виде двух обычных слешей, предназначенных именно для обозначения однострочного комментария. Данный значек ставится вначале строки и действует до конца строки. У нас также есть с вами для этого уже пример в коде. Здесь среда нам подсказывает, где именно следует начинать писать свой код
Данный комментарий можно будет также удалить.
Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе «соберём его», так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу «F7». После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение
Также в папке «Test01Debug» нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят — прошивка — файл «Test01.hex». Данный файл мы и будем «заливать» в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.
Привет Гиктаймс. Новогодние праздники подходят к концу, все салаты съедены, шампанское выпито, и жизнь потихоньку начинает возвращаться в привычное русло. И это хорошо. Но речь совсем не об этом.
Дело, собственно, вот в чем: многие из нас, начиная свой путь программирования микроконтроллеров с платы Arduino, подходили наконец к такому моменту,
когда в родной среде Arduino IDE становилось тесновато, а крутые среды разработки типа Atmel Studio, Keil, Microsoft VS пугали обилием настроек и инструментов.
Мне, например, очень удобно работать с механизмом вкладок Arduino IDE, разрабатывая большие проекты, это чисто мое предпочтение — на самом деле очень много времени занимает перенос кода, функций и переменных в заголовочные файлы и классы. Но на самом деле, есть более весомые аргументы в пользу перехода от Arduino IDE к более серьезным инструментам разработки. Это в первую очередь, наличие отладчика. Для начинающих программистов микроконтроллеров это кажется несущественным, но когда время идет, и сложность программ увеличивается, увеличиваются и требования к работоспособности и функционалу кода МК. И тут как раз возникает необходимость понимать, и видеть, как работает твой код на микроконтроллере. Даже если ты не обзавелся каким нибудь jtag — девайсом, очень приятно наблюдать даже в симуляторе, как нужные значения падают в нужные регистры во время работы программы. Ну и конечно же, если вы всерьез решили изучить программирование микроконтроллеров и архитектуру AVR — то без дебаггера просто никак не обойтись. Я уже молчу про скрытую работу wiring — препроцессора Arduino IDE, который позволяет писать более простые программы, используя функционал библиотек Arduino, и который добавляет в программу очень много мусора, который занимает память программ контроллера, и использует вхолостую ресурсы МК. Также немаловажным фактором является скромность редактора исходного кода среды Arduino IDE. И как водиться в миру, настоящие хардкорные разработчики встраиваемых систем и автоматики пишут только на си и ассемблере, полагаясь на собственный интеллект и опыт, а не на разработки итальянских студентов (против которых ничего плохого не имею, и камней в их огород бросать не буду).
Если вы согласны с вышесказанным — значит вы уже пробовали, или только собираетесь установить и использовать Atmel Studio 7. Я сам программист начинающий, можно сказать, программирование учил очень давно в школе, это был интерпретируемый Бейсик на машинах MSX. И лишь только пару лет назад пришлось, как говорится, по долгу службы приступить к изучению и освоению си и с++. Поэтому с небольшой высоты колокольни собственного опыта, хочу порекомендовать AVR Studio, а именно Atmel Studio 7. На самом деле, эта среда доставила мне достаточно нервотрепки с ее установкой и запуском («окна» я использую исключительно для работы и потехи, причем это Win 7 SP1 64), было несколько попыток установить ее с разбегу, но это заканчивалось фэйлом, пока на чистую систему я не установил обновление «Windows6.1-KB3033929-x64.msu», после чего все таки мои старания были вознаграждены, и среда запустилась. После было много сказано отнюдь не литературных слов и выражений, пока среда не стала более менее адекватно работать (Atmel Studio 7 у меня жутко тормозила поначалу, на машине с хорошим Core i7 и 8 гигами шустрой ОЗУ DDR4, не пойму, что стало потом, то ли среда каким то мистическим образом прокэшировалась в системе, или же я привык, но сейчас все неплохо работает). Также я хочу подметить, что эта среда так или иначе разработана и выпущена разработчиками AVR и ARM контроллеров Atmel, и посему поддерживает все свои контроллеры, и предоставляет все необходимые для работы библиотеки на с/с++. Огромный плюсом, и как я полагаю, неотъемлемой частью является наличие ассемблера для описанных выше платформ. Также в седьмой версии программы появилась поддержка конвертации скетчей Arduino в код программы для контроллера на языке си. Опция эта работает пока что несовершенно, и неспособна преобразовывать скетчи с несколькими вкладками, из-за чего теряет пока что определенную актуальность.
Но есть у этой среды и определенный недостаток: она не поддерживает наиболее популярный, и самый дешевый программатор USBaSP, и не поддерживает из «коробки» возможность программирования напрямую(используя порт USB) плат Arduino. И поэтому я в этой статье хочу поделиться определенным «лайфхаком», и я надеюсь, что это кому то будет действительно полезным.
Итак, приступим. Что нам необходимо иметь: ПК с установленными Atmel Studio 7, Arduino IDE желательно последней версии, и драйверами для вашей платы Arduino, ну и собственно, сам «пациент». Подключаем контроллер к ПК, дальше устанавливаются драйвера, и после вы должны выполнить несколько манипуляций, но это нужно будет сделать один раз для разных плат Arduino.
Сначала открываем среду Arduino IDE, выбираем любимый наш Блинк, и включаем вывод компилятора в окно компиляции внизу редактора:
Потом компилируем скетч, не загружая его в контроллер:
После вам необходимо открыть какой нибудь текстовый редактор, и выполнить пару вещей — скопировать команды для компилятора и флаги компиляции в окно редактора, и отредактировать подобным образом:
После, открыв среду Atmel Studio 7, выбираем во вкладке Tools пункт External Tools, cоздаем новый профиль (можете сделать несколько разных профилей для каждой отдельной платы Arduino, где в соответсвующие строки вставляем наши параметры, где указаны адрес программы avrdude, и команды для компилятора:
Потом можно создать любой проект, написав, к примеру, тот же код любимой моргалки, но уже на си, и загрузить наш код в контроллер, сначала собрав ваш проект, нажав F7 (Build project), и после кликнув на пункте с именем вашего профиля программирования во вкладке Tools:
Программа ваша будет записана в память программ контроллера, загрузчик останется на своем месте, и вы всегда сможете открыть Arduino IDE и записать ваш код привычным способом. Благодарю всех за внимание, и надеюсь, что данный совет будет кому нибудь полезен.
Запуск Visual Studio15 и Atmel Studio7
В настоящее время я сталкиваюсь с проблемой, пытаясь запустить Visual Studio 15 Enterprise Update 1 и Atmel Studio 7 Build 634 вместе на Windows 10 Education .
Я могу открыть и управлять VisualStudio без каких-либо проблем.
Однако, когда я пытаюсь запустить AtmelStudio, я получаю несколько ошибок «package not found», которые говорят мне заглянуть в ActivityLog в разделе «…\AppData\Roaming\Microsoft\AppEnv\14.0». Поскольку я не знаю, как поместить важную часть в Редактор здесь, я дам вам ссылку на файл в моем dropbox. ActivityLog.xml
Я уже пробовал несколько повторных установок, изменил порядок установки и просмотрел несколько других потоков, которые предлагали очистить разные папки в локальном и роуминге, но ничего из этого не помогло.
Есть идеи?
Edit 12.12.15: как предположил Devon1337, ошибка вызвана обновлением 1 Visual Studio 15 Enterprise, которое, кстати,уже включено в сообщество Visual Studio 15.
Обходной путь:
- Удалите обе
- Установка Atmel Studio 7
- После этого установите Visual Studio 15 Enterprise и не устанавливайте обновление 1 (снимите флажок в установочном конфигураторе)
Поделиться Источник alias 11 декабря 2015 в 17:25
2 ответа
- Включение завершения кода в Atmel Studio 6
Я ищу функцию автозаполнения в Atmel IDE Atmel Studio 6. Поскольку он основан на Visual Studio, должен быть IntelliSense, но я могу найти только пункт меню Intellisense под Edit, который вообще не имеет никакого эффекта. Я программирую в C. Есть ли способ обеспечить автозаполнение, как в NetBeans…
- Первый Проект Atmel
ищу небольшую помощь. Я знаком с микроконтроллерами PIC, но никогда не использовал Atmel. Мне нужно использовать ATMEGA128 для проекта на работе, поэтому последние несколько дней я играл в Atmel Studio 6. Однако у меня есть проблема, я даже не могу заставить LED моргнуть. Я использую платы…
Поделиться VG123 16 декабря 2015 в 12:44
2
Обновление от 10 марта 2016:
Atmel выпустила обновленную версию build 790, которая, похоже, решила эту проблему. Вы можете выполнить обновление из Atmel Studio или повторно загрузить установщик и переустановить его. В примечаниях к выпуску не указано, что это исправлено, но я подтвердил, что проблема исчезла после переустановки.
Это связано с некоторым конфликтом между VS2015 и Atmel Studio 7. У меня не было этой проблемы, пока я не обновился до VS2015 с 2013 года. У тебя есть чтобы обновить файл конфигурации в AppData\Local\Atmel\AtmelStudio\7.0. В этом конфигурационном файле вы найдете настройку:
<dependentAssembly> <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="1.0.27.0-1.1.65535.65535" newVersion="1.1.37.0"/> </dependentAssembly>
System.Collections.Immutable newVersion должно быть 1.1.37.0 вместо 1.1.36.0. После этого изменения мне пришлось перезапустить свой PC. После загрузки Atmel Studio после перезагрузки она выполнит некоторое обновление пакетов.
Поделиться Sherd 01 февраля 2016 в 15:40
Похожие вопросы:
Emacs сочетания клавиш в Atmel Studio
Кто-нибудь нашел способ иметь Emacs сочетаний клавиш в Atmel Studio 6? Я понимаю, что он построен на Visual Studio, и есть расширение эмуляции Emacs для Visual Studio. Я не вижу расширения эмуляции…
«Кэш компонентов visual Studio устарел, пожалуйста, перезагрузите Visual Studio.»
Я нахожусь на windows 7, использую Atmel studio 7.0. Когда я открыл свой проект в Atmel Studio, он не загрузился и выдал эту ошибку: The Visual Studio component cache is out of date please restart…
Как Atmel Studio 7 компилирует и отлаживает код Arduino?
Об этом Atmel заявила на своем сайте: Atmel Studio 7 обеспечивает плавный импорт проектов, созданных в среде разработки Arduino, в один клик. Ваш эскиз, включая все библиотеки, на которые он…
Включение завершения кода в Atmel Studio 6
Я ищу функцию автозаполнения в Atmel IDE Atmel Studio 6. Поскольку он основан на Visual Studio, должен быть IntelliSense, но я могу найти только пункт меню Intellisense под Edit, который вообще не…
Первый Проект Atmel
ищу небольшую помощь. Я знаком с микроконтроллерами PIC, но никогда не использовал Atmel. Мне нужно использовать ATMEGA128 для проекта на работе, поэтому последние несколько дней я играл в Atmel…
Flash двоичный файл для Arduino Due board от Atmel studio
Я работаю над Arduino должной доской. Мне нужно подключить модуль к этой плате с помощью протокола SPI. У меня есть исходный код, который я строю в проекте Atmel studio . Теперь мне нужно flash этот…
AVR ATMEL ATMega168 библиотеки
Я новичок в мире программирования C и AVR, и поэтому сейчас читаю эту книгу на эту тему. Автор ссылается на библиотеки ATMEL, которые занимаются манипуляциями с памятью, функциями времени (сна) и…
Atmel-ICE Программирование atsam4sd32c
У меня возникли проблемы с программированием пользовательской печатной платы, которая использует 32-битный atsam4sd32c ARM Cortex M4. я не могу запрограммировать microcontroller через интерфейс…
Как использовать библиотеку Eigen для Arduino в Atmel Studio 7?
Я попытался использовать библиотеку Eigen в кулаке Arduino IDE. Затем я получил ошибку: фатальная ошибка: eigenfolder/Eigen/Dense: такого файла или каталога нет Затем я попытался использовать…
lws-клиент для ATMEL SAM4E
Я сгенерировал libwebsockets.a для atmel sam4e (lib, включает) Мне нужна помощь, чтобы просто запустить простой клиент libwebsockets для atmel SAM4E. Я получил эту ошибку в связи с esp32, но я…
Установка atmel studio 7 в windows 7
В этом материале вы узнаете, как использовать AVR IDE для создания проектов, базовых схем и программирования ваших цепей.
Комплектующие
Микроконтроллеры AVR имеют некоторые преимущества по сравнению с другими аналогичными микросхемами, включая более высокую MIPS и более дружественную архитектуру. В этой статье мы узнаем, как использовать AVR IDE, как создать исполняемый проект, построить базовую схему AVR, а затем запрограммировать ее. Для этого нам понадобится набор компонентов, а также некоторое программное обеспечение.
Оборудование:
- ATMEGA168 DIP IC x 1
- Кварцевые резонаторы, кристалл (4-20 МГц) x 1
- 20 пФ конденсатор x 2
- 680 резистор x 1
- 5.6K резистор x 1
- Светодиод LED x 1
- Источник 5 В (цепь 7805, плавное регулирование и т.д.) x 1
- Провода
Программное обеспечение:
- USBASP
- WINAVR (20100110)
- Atmel Studio 7
Схема
Построение схемы довольно простое и может быть выполнено с использованием большинства методов построения схем, включая макет, картон, монтажную плату и печатную плату.
Схема в этом проекте показывает использование простой цепи регулятора мощности (с использованием 7805), которую обеспечивает устройство ATMEGA 5В, но оказывается, что программатор USBASP обеспечивает приблизительно 3,3 В. Несмотря на это, лучше обеспечить внешнее питание, чтобы USBASP не потреблял слишком много тока из любого USB-порта.
Программатор USBASP, который я купил, также шел с конвертером, который преобразует 10-контактный разъем в более удобный 6-контактный программный разъем. Тем не менее, header использует двухрядный шаг 2,54 мм, что означает, что он не может быть подключен к макету. Чтобы обойти это, я просто подключил разъем к проводам, которые соединяются с различными пинами на макете.
Как установить AVR Studio
Устройства AVR программируются с использованием специально модифицированной Visual Studio 2015 под названием AVR Studio 7, которую можно найти на сайте AVR. Первым шагом в программировании устройств AVR является скачивание установщика (небольшого приложения, которое загружает потом необходимые файлы). После скачивания нужно запустить установщик.
Первое, что он вас спросит, будет текст лицензионного соглашения и вопрос про отправку анонимной информации. Я лично рекомендую вам не отправлять анонимные данные по ряду причин (из-за крайней паранойи).
На следующей странице спрашивается какую архитектуру вы хотите установить. Поскольку наш материал охватывает только устройства из диапазона 8-битных микроконтроллеров AVR, то это будет единственная выбранная опция. Однако, если у вас приличная скорость загрузки (у меня всего 4 Мбит/с), тогда выбор всех опций может пригодиться в будущем.
После выбора поддерживаемого устройства на следующей странице будет задан вопрос про расширения – Atmel Software Framework и примеры проектов. Убедитесь, что галочка стоит.
Следующая страница просто проверяет ваш компьютер на наличие потенциальных проблем, таких как отложенный перезапуск (из-за обновления), или если система не сможет запустить IDE. Если все проверено и ОК, жмите «Далее».
Если вы уже установили более раннюю версию AVR IDE, вы можете увидеть следующее окно. Если это так, просто нажмите «Установить».
Теперь нужно подождать пока IDE загрузит все необходимые компоненты и установит их.
После этого вам будет предложено запустить Atmel Studio 7.0. Убедитесь, что стоит галочка перед закрытием окна установки.
Как установить WINAVR
Хотя Atmel Studio 7 полезная штука для написания кода, она не самый лучший выбор, когда речь идет о программировании устройств AVR с использованием инструментов с открытым исходным кодом. Поэтому, чтобы сделать жизнь проще на этапе компиляции и/или программирования, мы будем использовать WINAVR, которая также поставляется с AVRDUDE для загрузки нашего кода на устройства Atmega. Чтобы скачать WINAVR для Windows, просто нажмите на эту ссылку и выберите исполняемый exe-файл.
После скачивания запустите установщик и просмотрите все предложенные опции, пока программа не спросит вас про место установки.
Лучшее место для установки WINAVR – это рекомендуемое расположение: C:WinAVR-20100110 . Следующая опция спросит про компоненты и вы должны убедиться, что установлены все галочки (показано ниже).
После того, как кнопка установки нажата, установщик выполнит остальную часть работы, после чего установщик закроется.
Как подключить USBASP и установить драйвер для Windows
Если вы используете Windows, вам необходимо изменить драйвер USB для USBASP. Это сделать не сложно с помощью инструмента под названием Zadig. Проще говоря:
- загрузите Zadig,
- подключите устройство USBASP к компьютеру,
- дождитесь пока Windows автоматически установит USBASP,
- запустите Zadig,
- найдите устройство USBASP в раскрывающемся списке,
- выберите драйвер libusb-win32 (v1.2.6.0).
После того, как вы нажмете «Заменить драйвер» (или Переустановить драйвер), Zadig автоматически установит драйвер, необходимый для работы USBASP в Windows.
Как настроить Atmel Studio 7 и WinAVR
Atmel Studio 7 не будет изначально использовать WINAVR или AVRDUDE, поэтому мы должны настроить её для этого. Это может показаться пугающим, но не паникуйте; для программирования устройства AVRDUDE необходима только одна строка инструкций, и только один каталог требуется определить. Фактически, вы должны быть в состоянии скопировать и вставить код в этой статье для любого проекта на базе ATMEGA168.
Итак, первый шаг – сообщить Atmel Studio 7 какой компилятор она должна использовать. Для этого откройте Atmel Studio 7 (если она еще не открыта) и нажмите: Инструменты -> Параметры (англ.: Tools -> Options).
В открывшемся окне используйте список слева, чтобы перейти к: Набор инструментов -> Конфигурация пакета (англ.: Toolchain -> Package Configuration) и в опциях, которые теперь должны быть доступны справа, выберите Atmel AVR 8-bit (язык C) (Atmel AVR 8-bit (C language)) из раскрывающегося списка, а затем нажмите: Добавить особенность (англ.: Add Flavour).
Предполагая, что вы установили WINAVR в папку по умолчанию на диске C и что у вас та же версия, что и в WINAVR, как в этой статье, во всплывающем окне мы пишем так, как показано ниже. После заполнения полей нажмите «Добавить» (англ. add), а когда вы вернетесь в предыдущее окно, нажмите «ОК».
Atmel Studio 7 теперь может использовать WINAVR для компиляции программ AVR, но все равно не может программировать устройства. Для этого нам нужно добавить внешний инструмент в Atmel Studio 7 и настроить его для устройства ATMEGA168.
Первый шаг – перейти в: Инструменты -> Внешние инструменты (англ. Tools -> External tools). Открывшееся окно – единственное окно, необходимое для работы программатора USBASP. Скрин ниже показывает большинство деталей, которые вам нужно будет заполнить.
Поле «Аргументы» (англ. Arguments) не полностью отображает всю информацию, которая необходима, и поэтому приведу ниже то, что было заполнено:
avrdude -c usbasp -p atmega168 -U lfuse:w:0x26:m -U flash:w:$(ProjectDir)Debug$(TargetName).hex:i
Большая часть информации в этом не важна для нас, кроме двух фрагментов текста. Первый – это -p atmega168;, который говорит AVRDUDE, что мы программируем ATMEGA168. Если в вашем проекте используется другой чип, замените текст atmega168 на используемое вами устройство (например, atmega88).
Второй параметр -U lfuse:w:0x26:m, который специфичен для ATMEGA168. Эта инструкция указывает AVRDUDE настроить устройство на использование внешнего кристалла, и после программирования устройство будет работать только при подключении к схеме кристалла. Обратите внимание, что это также означает, что устройству требуется кристалл при программировании. Этот аргумент будет работать только для ATMEGA168.
Создание первого проекта
Следующая задача состоит в том, чтобы создать проект на основе AVR микроконтроллера и протестировать схему, компилятор и программатор.
Сначала перейдите в: Файл -> Создать -> Проект (англ. File -> New -> Project) и в открывшемся окне выберите: Исполняемый проект GCC C (англ. GCC C Executable Project), а в текстовом поле Имя (англ. Name) дайте любое название вашему проекту.
Следующее окно, которое должно появиться, – это окно выбора устройства. Из списка выберите Atmega168. Насколько мне известно, это окно не имеет никакого смысла, так как мы все равно передаем имя устройства в AVRDUDE вручную (пока я не могу найти способ заставить Atmel Studio 7 автоматически отправлять имя устройства в AVRDUDE через аргументы).
Результатом должен стать файл main.c, содержащий код нашей программы, который будет запускать AVR. Однако сгенерированный код ничего не делает, поэтому замените все содержимое файла main.c с помощью приведенной ниже программы (обязательно сохраните файл после ввода нового кода).
Теперь пришло время скомпилировать код и загрузить его на устройство AVR. Первый шаг – убедиться, что наш проект использует компилятор WINAVR. Щелкните правой кнопкой мыши проект и выберите «Дополнительно» (англ. – Advanced) в окне свойств.
В окне «Дополнительно» убедитесь, что в поле «Набор инструментов» (англ. – Toolchain Flavour) выбран WINAVR.
Сохраните проект и скомпилируйте его, нажав: Build -> Build Solution (или нажав F7). Если все идет по плану, в окне вывода должно появиться следующее сообщение:
Это означает, что наш проект успешно скомпилирован и готов к передаче на наш чип. Чтобы запрограммировать устройство, убедитесь, что USBASP подключен как к ПК, так и к цепи Atmega, к цепи подано питание и что к микросхеме подключен кристалл (в случае, если микросхема была настроена для использования внешнего кристалла).
Затем, после всего этого, нажмите: Инструменты -> USBASP (англ. Tools -> USBASP), и все будет работать автоматически.
Если все хорошо, светодиод в вашей цепи должен начать мигать. Ниже приведен вывод AVRDUDE в Atmel Studio 7, показывающий, как выглядит успешная программа.
Заключение
Начало работы с устройствами AVR может показаться несколько сложным, если вы не используете официальный программатор, который может работать «из коробки» с Atmel Studio 7. Однако в инструментах программирования требуется определить только одну командную строку (тип устройства, биты и т.п.). И все будущие проекты могут использовать один и тот же инструмент/компилятор, который нужно настроить только один раз.
Т.е. следующий проект ATMEGA168, который вы будете делать, сможет использовать тот же компилятор и внешний инструмент, что и в этом проекте и не потребуется никаких дополнительных настроек. Конечно, в более сложных проектах может потребоваться замена бит (англ. fuse), например, но в данном материале я хотел просто помочь вам освоить работу с устройствами AVR.
Бывшая AVR Studio теперь позволяет разработчикам Arduino быстро преобразовывать свои скетчи созданные в среде Arduino в полноценные C++ проекты, например для отладки в симуляторе или в железе (вот только JTAG отладчик обойдется минимум в сто баксов).
Поддерживаются платформы AVR и ARM, а также ардуино платы. Причем все — даже те которые вы сами сделали и добавили в Arduino IDE (но только AVR-based).
Новая студия сделана на основе Visual Studio Isolated Shell 2015, поэтому она не устанавливается в Windows XP.
После установки студия занимает на диске 888Mb, причем из них 365Mb занимают примеры кода которые можно не устанавливать (Atmel Software Framework — библиотека свободного исходного кода с 1600 примерами проектов)
Также некоторое место займет .net framework 4.6, если он еще не был установлен.
Может быть со временем на Atmel Studio перейдет большая часть продвинутых ардуинщиков?
Дебажить логику в симуляторе седьмой студии — одно удовольствие.
Ардуинщиками теперь можно быстро увидеть в какие ассемблерные инструкции превращается код и что можно оптимизировать.
Стоит заметить что функция импорта проектов Arduino IDE только односторонняя и пока что сырая, скетч состоящий из нескольких файлов импортировать пока что не умеет.
Интеграция работает начиная с 1.6.5 версии Arduino IDE. Если у вас поля выбора платы и девайса пустые — значит нужно обновить версию Arduino IDE.
Как вариант обхода этого ограничения — можно написать консольную программу, чтоб она все ino файлы склеивала в один большой ino файл, предназначенный специально для импорта в студию. Заодно эту программу можно доработать, чтобы оно потом автоматически подтягивало изменения из С++ проекта назад в ардуиновский проект. Думаю написать такую утилиту.
Ссылка для скачивания: Atmel Studio 7
Программирование Arduino из Atmel Studio 7 / Habr
Привет Гиктаймс. Новогодние праздники подходят к концу, все салаты съедены, шампанское выпито, и жизнь потихоньку начинает возвращаться в привычное русло. И это хорошо. Но речь совсем не об этом.
Дело, собственно, вот в чем: многие из нас, начиная свой путь программирования микроконтроллеров с платы Arduino, подходили наконец к такому моменту,
когда в родной среде Arduino IDE становилось тесновато, а крутые среды разработки типа Atmel Studio, Keil, Microsoft VS пугали обилием настроек и инструментов.
Мне, например, очень удобно работать с механизмом вкладок Arduino IDE, разрабатывая большие проекты, это чисто мое предпочтение — на самом деле очень много времени занимает перенос кода, функций и переменных в заголовочные файлы и классы. Но на самом деле, есть более весомые аргументы в пользу перехода от Arduino IDE к более серьезным инструментам разработки. Это в первую очередь, наличие отладчика. Для начинающих программистов микроконтроллеров это кажется несущественным, но когда время идет, и сложность программ увеличивается, увеличиваются и требования к работоспособности и функционалу кода МК. И тут как раз возникает необходимость понимать, и видеть, как работает твой код на микроконтроллере. Даже если ты не обзавелся каким нибудь jtag — девайсом, очень приятно наблюдать даже в симуляторе, как нужные значения падают в нужные регистры во время работы программы. Ну и конечно же, если вы всерьез решили изучить программирование микроконтроллеров и архитектуру AVR — то без дебаггера просто никак не обойтись. Я уже молчу про скрытую работу wiring — препроцессора Arduino IDE, который позволяет писать более простые программы, используя функционал библиотек Arduino, и который добавляет в программу очень много мусора, который занимает память программ контроллера, и использует вхолостую ресурсы МК. Также немаловажным фактором является скромность редактора исходного кода среды Arduino IDE. И как водиться в миру, настоящие хардкорные разработчики встраиваемых систем и автоматики пишут только на си и ассемблере, полагаясь на собственный интеллект и опыт, а не на разработки итальянских студентов (против которых ничего плохого не имею, и камней в их огород бросать не буду).
Если вы согласны с вышесказанным — значит вы уже пробовали, или только собираетесь установить и использовать Atmel Studio 7. Я сам программист начинающий, можно сказать, программирование учил очень давно в школе, это был интерпретируемый Бейсик на машинах MSX. И лишь только пару лет назад пришлось, как говорится, по долгу службы приступить к изучению и освоению си и с++. Поэтому с небольшой высоты колокольни собственного опыта, хочу порекомендовать AVR Studio, а именно Atmel Studio 7. На самом деле, эта среда доставила мне достаточно нервотрепки с ее установкой и запуском («окна» я использую исключительно для работы и потехи, причем это Win 7 SP1 64), было несколько попыток установить ее с разбегу, но это заканчивалось фэйлом, пока на чистую систему я не установил обновление «Windows6.1-KB3033929-x64.msu», после чего все таки мои старания были вознаграждены, и среда запустилась. После было много сказано отнюдь не литературных слов и выражений, пока среда не стала более менее адекватно работать (Atmel Studio 7 у меня жутко тормозила поначалу, на машине с хорошим Core i7 и 8 гигами шустрой ОЗУ DDR4, не пойму, что стало потом, то ли среда каким то мистическим образом прокэшировалась в системе, или же я привык, но сейчас все неплохо работает). Также я хочу подметить, что эта среда так или иначе разработана и выпущена разработчиками AVR и ARM контроллеров Atmel, и посему поддерживает все свои контроллеры, и предоставляет все необходимые для работы библиотеки на с/с++. Огромный плюсом, и как я полагаю, неотъемлемой частью является наличие ассемблера для описанных выше платформ. Также в седьмой версии программы появилась поддержка конвертации скетчей Arduino в код программы для контроллера на языке си. Опция эта работает пока что несовершенно, и неспособна преобразовывать скетчи с несколькими вкладками, из-за чего теряет пока что определенную актуальность.
Но есть у этой среды и определенный недостаток: она не поддерживает наиболее популярный, и самый дешевый программатор USBaSP, и не поддерживает из «коробки» возможность программирования напрямую(используя порт USB) плат Arduino. И поэтому я в этой статье хочу поделиться определенным «лайфхаком», и я надеюсь, что это кому то будет действительно полезным.
Итак, приступим. Что нам необходимо иметь: ПК с установленными Atmel Studio 7, Arduino IDE желательно последней версии, и драйверами для вашей платы Arduino, ну и собственно, сам «пациент». Подключаем контроллер к ПК, дальше устанавливаются драйвера, и после вы должны выполнить несколько манипуляций, но это нужно будет сделать один раз для разных плат Arduino.
Сначала открываем среду Arduino IDE, выбираем любимый наш Блинк, и включаем вывод компилятора в окно компиляции внизу редактора:
Потом компилируем скетч, не загружая его в контроллер:
После вам необходимо открыть какой нибудь текстовый редактор, и выполнить пару вещей — скопировать команды для компилятора и флаги компиляции в окно редактора, и отредактировать подобным образом:
После, открыв среду Atmel Studio 7, выбираем во вкладке Tools пункт External Tools, cоздаем новый профиль (можете сделать несколько разных профилей для каждой отдельной платы Arduino, где в соответсвующие строки вставляем наши параметры, где указаны адрес программы avrdude, и команды для компилятора:
Потом можно создать любой проект, написав, к примеру, тот же код любимой моргалки, но уже на си, и загрузить наш код в контроллер, сначала собрав ваш проект, нажав F7 (Build project), и после кликнув на пункте с именем вашего профиля программирования во вкладке Tools:
Программа ваша будет записана в память программ контроллера, загрузчик останется на своем месте, и вы всегда сможете открыть Arduino IDE и записать ваш код привычным способом. Благодарю всех за внимание, и надеюсь, что данный совет будет кому нибудь полезен.
Как исправить установку Atmel Studio 7, которая застряла в «среде инициализации»?
Atmel Studio 7 Install Is Stuck
I’m attempting to install Atmel Studio 7. I’ve tried both the online install and the download then install option and the installer becomes stuck (shown in the image).
Hardware Shouldn’t be A Problem
I’m running Windows 10 on an i7 with 8GB ram and a decent Internet connection (20MBPS).
Possible Issue?
I do have Visual Studio Community 2013 on my machine (not 2015). Could that be a source of the problem?
Anyone Else Experience This?
Any Advice On How To Diagnose or Resolve?
Do you know of anything to try to diagnose this issue?
Has anyone else had this issue and resolved it?
I’ve Googled but haven’t found any related info.
EDIT
It seems as if numerous people are running into this problem.
The solution was to simply Cancel the installation and restart the computer. The
installation was locked. After that, when my computer restarted the installation continued and fixed the issue.
Atmel Studio 7 Установите ли Застрял
Я пытаюсь установить Atmel Studio, 7. Я пробовал как онлайн установки и загрузки установите опцию и установщик застревает (показано на рисунке).
Оборудование не должно быть проблемой
Я бегу Windows 10 на i7 с 8 Гб оперативной памяти и подключение к приличным интернет (20Mbps).
Возможная проблема?
У меня есть Visual Studio Community 2013 на моей машине (не 2015). Может ли это быть источником проблемы?
Любой совет о том, как диагностировать или разрешать?
Знаете ли вы что-нибудь, чтобы попытаться диагностировать эту проблему?
У кого-нибудь еще была эта проблема и она была решена?
У меня Googled, но не нашел никакой информации.
EDIT
Кажется, что многие люди бегут в эту проблему.
Решение было просто Отменить установку и перезагрузить компьютер. Установка
была заблокирована. После этого, когда мой компьютер перезагрузился, установка продолжилась и исправила проблему.
Studio 7 is the integrated development platform (IDP) for developing and debugging all AVR® and SAM microcontroller applications. The Atmel Studio 7 IDP gives you a seamless and easy-to-use environment to write, build and debug your applications written in C/C++ or assembly code. It also connects seamlessly to the debuggers, programmers and development kits that support AVR ® and SAM devices.
Additionally, Studio includes Atmel Gallery, an online app store that allows you to extend your development environment with plug-ins developed by Microchip as well as third-party tool and embedded software vendors. Studio 7 can also seamlessly import your Arduino sketches as C++ projects, providing a simple transition path from Makerspace to Marketplace.
Key Features
- Support for 500+ AVR and SAM devices
- Vast source code library, including drivers, communication stacks, 1,600+ project examples with source code, graphic services and touch functionality through Advanced Software Framework (ASF)
- IDE extensions through Atmel Gallery, the online apps store, for development tools and embedded software from Microchip and third parties
- Tune capacitive touch designs, validate system performance, monitor power consumption, and real-time data and trace graphing with Atmel QTouch Composer
- Configure and test the performance of wireless designs with the Wireless Composer running on the target
- Write and debug C/C++ and assembly code with the integrated compiler
- Advanced debugging features include complex data breakpoints, nonintrusive trace support (SAM3 and SAM4 devices), statistical code profiling, interrupt trace/monitoring, polled data tracing (Cortex-M0+ devices), real-time variable tracking with optional timestamping.
- Integrated editor with visual assist
- Project wizard allowing projects created from scratch or from a large library of design examples
- In-system programming and debugging provides interface to all Atmel in-circuit programmers and debuggers
- Create transparent debug views into CPU and peripherals for easy code development and debugging
- Full chip simulation for an accurate model of CPU, interrupts, peripherals, and external stimuli
The Data Visualizer plug-in captures and displays run-time power data from your application when used with the Power Debugger, or a supported Xplained-PRO board. You can profile the power usage of your application as part of a standard debug session. Sampling the program counter during power measurements makes it possible to correlate power spikes with the code that caused them.
Atmel Studio 7 features seamless one-click import of projects created in the Arduino development environment. Your sketch, including any libraries it references, will be imported into Studio 7 as a C++ project. Once imported, you can leverage the full capabilities of Studio 7 to fine-tune and debug your design. Atmel Studio 7 fully supports the powerful embedded debugger on the Arduino Zero board. For other Arduino boards, shield-adapters that expose debug connectors are available, or switch to one of the many available Xplained-Mini/PRO boards to fully leverage the Microchip HW eco-system. Regardless of what you choose, you will surely make something amazing.
The Help system in Atmel Studio 7 supports on-line as well as off-line access, meaning that you will always get the latest documentation when you are connected, and that it will stay with you when you are mobile. Device aware context sensitivity and an IO-view are contained in the editor, allowing you to look up register-specific information from the datasheet of the part you are using without leaving the editor. The AVR-Libc documentation further enhances the context sensitive Help system, allowing you to look up function definitions easier than ever before. Do you still want to join?
Atmel Studio 7 is free of charge and is integrated with Advanced Software Framework (ASF)—a large library of free source code with 1,600 project examples. ASF strengthens Atmel Studio by providing, in the same environment, access to ready-to-use code that minimizes much of the low-level design required for projects. Standard IDEs are suited for creating new software for an MCU project. In addition to this, the Atmel Studio 7 IDP also:
- Facilitates reuse of existing software and, by doing so, enables design differentiation.
- Supports the product development process with easy access to integrated tools and software extensions through Atmel Gallery.
- Reduces time to market by providing advanced features, an extensible software eco-system, and powerful debug integration.
Contains the Atmel Gallery app store
You can download and securely purchase both Atmel and third-party compilers, advanced debugging tools, real-time operating systems, communication systems and other extensions and plug-ins straight from the Atmel Studio 7 development platform and via gallery.atmel.com. The Atmel Gallery app store provides development tools and embedded software for MCU-based application design.
When you encounter a need for a tool in the middle of your development process, or are seeking some basic source code, you won’t have to leave your environment to search for your solution. From Atmel Gallery, you can also download a plug-in that will give you direct access to Atmel Spaces, our new collaborative workspace.
Atmel studio 7 отзывы
Atmel Studio
Недавно вышла новая Atmel Studio версии 7.0. Как и все предыдущие IDE от Atmel, она не лишена ряда существенных недостатков:
- Отсутствие кроссплатформенности. Только Windows, причем, не ниже Windows 7
- Отсутствие поддержки популярных программаторов, JTAG-ов и т.д, только фирменные атмеловские инструменты
- Не умеет обновляться – каждую версию приходится ставить отдельно. Причем, если удалить предыдущую установленную версию, то может сломаться последняя.
В качестве альтернативы студии можно использовать любой понравившийся текстовый редактор в связке с системой компиляции и сборки проекта.
Для сборки проекта студия использует утилиту make и генерит makefile. В принципе, makefile можно писать руками, но это не совсем удобно и очень громоздко. Попытки использования разных известные аналогов make (cmake, scons и прочее) желаемого результата также не дали. Хотелось своего велосипеда – чего-то предельно простого, гибкого и удобного. В качестве основы был выбран Python, т.к. его легко использовать не только в качестве языка для написания системы сборки, но и в качестве удобного языка для написания сценариев компиляции.
Утилита AVR builder
Пример простого проекта
Описание сценариев компиляции должно быть максимально простым – для сборки достаточно указать список исходных файлов, модель микроконтроллера и, как правило, его тактовую частоту. Так же хотелось иметь возможность собирать одной командой неограниченное множество различных прошивок (например, debug, release, прошивки для кварцевых резонаторов разных частот и т.д.)
Минимальный файл конфигурации выглядит так:
Этот файл сохраняется под именем make.builder в корень проекта. Утилита при запуске читает этот файл, создает директорию build и запускает компиляцию всех файлов, указанных в списке src. В случае успеха будет создан файл прошивки build/my_project.hex. При этом нет необходимости явно перечислять все исходные файлы, можно использовать символ *. В данном примере, будут скомпилированы все файлы с расширениям .cиз директории src
Дополнительно в файле конфигурации можно указать параметры программатора (используется avrdude), набор макросов препроцессора и опции компиляции.
Более сложный пример
Тут дополнительно определены макросы препроцесора для условной компиляции (параметр defines) и настройки программатора для avrdude. Кроме того, в этом примере определены три конфигурации проекта с именами «debug», «release» и «demo».
Теперь скомпилированную прошивку можно залить на устройство командой
При необходимости можно указать и параметры компиляции и сборки (параметры compiler_options и linker_options). По умолчанию билдер задает эти параметры так, чтобы на выходе получалась максимально компактная и оптимизированная прошивка. На моих примерах размер прошивки получался меньше, по сравнению с размером прошивки, собираемой Atmel Studio 7 для release-сборки с параметрами по умолчанию.
Поддержка разлличных конфигураций
Еще одна особенность утилиты – поддержка множества конфигураций. Их можно определять с помощью ассоциированного массива configurations, как это сделано в примере выше. Допустим, надо создать разные версии прошивок для разных устройств (с разной схемотехникой, частотой кварца, с разными возможностями и т.д.). Для этого добавляются секции конфигурации в которых определяются отличительные параметры сборки. Также для сборок можно настроить имя конечного hex-файла (параметр name). Списки препроцессорных констант из конфигурации (параметр defines) будут добавлены к общему списку.
соберёт все сборки и положит их в директорию build
соберёт только сборки release и demo
очистит содержимое каталога build, затем соберет сборку debug и запишет ее на устройство.
Если в конфигурации конкретной сборки определен параметр, который уже определен в общей конфигурации (например, параметр “name”), то его значение будет взято из параметров сборки если параметр не является массивом. В случае массива значение параметра будет взято из объединения массивов общих параметров с параметрами сборки.
Поддержка bootloader-ов
Если для обновлении прошивки предполагается использовать загрузчик, то, вместо того, чтобы каждый раз вручную «приклеивать» его к прошивке, можно указать в путь к его файлу параметром bootloader_hex:
В этом случае код загрузчика будет взят из файала с именем «bootloader.hex» и вставлен в собранный файл прошивки. По умолчанию загрузчик ищется в корневой директории проекта, но можно указать полный абсолютный или относительный пусть.
Другие платформы
Также можно добавить, что сборщик легко адаптировать для использования по другие микроконтроллеры и платформы. Например, удобно собирать разные тесты для запуска их на компьютере, либо полный компьютерный симулятор разрабатываемого устройства. Много дополнительного кода для этого писать не придётся, а разаботка сильно упрощается – отлаживать некоторые вещи на компьютере значительно проще, чем на устройстве – тут и с детальные логи сохранять не проблема, и перепрошивать каждый раз устройство не требуется.
Сейчас утилита умеет собирать проекты из исходников на С и ассемблере (файлы с расширением .S). Работоспособность проверялась под Mac OS X и Windows. Сборщик пытается автоматически определить местоположение исполняемых файлов avrgcc, и если у него это не получилось (или получилось плохо), то путь к компилятору можно определить в переменной среды AVR_GCC_HOME (должна указывать на директорию c исполняемыми файлами avr-gcc, avr-objcopy, avr-objdump, avr-size и avrdude).
Для компиляции обычного консольного приложения надо изменить тип компилятора на GCC:
(по умолчанию compiler = ‘avr’)
Выбор альтернативной IDE
Что же касается текстового редактора, то перепробовав разные варианты я остановился на IDE NetBeans. Из коробки она умеет работать с файлами Си и ассемблера, запускать сборку с отображением ошибок компиляции и возможностью перехода в строке файла с ошибкой. Так же NetBeans имеет средства рефакторинга – можно, например, переименовывать переменные и методы в исходниках. В итоге, по удобству работы NetBeans, как мне показалась, превосходит AtmelStuidio. Правда, при работе в Windows в последней версии NetBeans замечено некоторое количество некритичных но неприятных багов.
Вообщем-то почти аналогичными возможностями из коробки обладает IDE Eclipse CDT. Но тут, как минимум, все хуже а ассемблерными файлами – подсветка синтаксиса примитивнее и нет возможности перемещаться по объектам как по ссылкам (по крайней мере, на момент написания статьи).
Еще можно использовать текстовые редакторы вроде Vim, Atom или Sublime, плагинизация которых позволяет получить вполне работоспособный инструмент, но это требует значительно большего количества времени и знаний. Лично мне наиболее простым показался Atom, в котором достаточно быстро удалось настроить сборку проекта с возможностью навигации по ошибкам/ворнингам и подсвечивания их в коде, но возможность рефакторинга отсутствовала.
Под Mac OS X достаточно удобным показался Xсode – тут из коробки для Си-проектов у меня заработало все кроме рефакторинга.
В качестве Makefile используется файл вида
Если Netbeans не находит каких-то утилит, то путь к ним можно прописать в файле (тут имя директории зависит от версии) /Applications/NetBeans/NetBeans 8.2.app/Contents/MacOS/netbeans. Я, например, добавил в самое начало этого файла строку
Бывшая AVR Studio теперь позволяет разработчикам Arduino быстро преобразовывать свои скетчи созданные в среде Arduino в полноценные C++ проекты, например для отладки в симуляторе или в железе (вот только JTAG отладчик обойдется минимум в сто баксов).
Поддерживаются платформы AVR и ARM, а также ардуино платы. Причем все — даже те которые вы сами сделали и добавили в Arduino IDE (но только AVR-based).
Новая студия сделана на основе Visual Studio Isolated Shell 2015, поэтому она не устанавливается в Windows XP.
После установки студия занимает на диске 888Mb, причем из них 365Mb занимают примеры кода которые можно не устанавливать (Atmel Software Framework — библиотека свободного исходного кода с 1600 примерами проектов)
Также некоторое место займет .net framework 4.6, если он еще не был установлен.
Может быть со временем на Atmel Studio перейдет большая часть продвинутых ардуинщиков?
Дебажить логику в симуляторе седьмой студии — одно удовольствие.
Ардуинщиками теперь можно быстро увидеть в какие ассемблерные инструкции превращается код и что можно оптимизировать.
Стоит заметить что функция импорта проектов Arduino IDE только односторонняя и пока что сырая, скетч состоящий из нескольких файлов импортировать пока что не умеет.
Интеграция работает начиная с 1.6.5 версии Arduino IDE. Если у вас поля выбора платы и девайса пустые — значит нужно обновить версию Arduino IDE.
Как вариант обхода этого ограничения — можно написать консольную программу, чтоб она все ino файлы склеивала в один большой ino файл, предназначенный специально для импорта в студию. Заодно эту программу можно доработать, чтобы оно потом автоматически подтягивало изменения из С++ проекта назад в ардуиновский проект. Думаю написать такую утилиту.
Бывшая AVR Studio теперь позволяет разработчикам Arduino быстро преобразовывать свои скетчи созданные в среде Arduino в полноценные C++ проекты, например для отладки в симуляторе или в железе (вот только JTAG отладчик обойдется минимум в сто баксов).
Поддерживаются платформы AVR и ARM, а также ардуино платы. Причем все — даже те которые вы сами сделали и добавили в Arduino IDE (но только AVR-based).
Новая студия сделана на основе Visual Studio Isolated Shell 2015, поэтому она не устанавливается в Windows XP.
После установки студия занимает на диске 888Mb, причем из них 365Mb занимают примеры кода которые можно не устанавливать (Atmel Software Framework — библиотека свободного исходного кода с 1600 примерами проектов)
Также некоторое место займет .net framework 4.6, если он еще не был установлен.
Может быть со временем на Atmel Studio перейдет большая часть продвинутых ардуинщиков?
Дебажить логику в симуляторе седьмой студии — одно удовольствие.
Ардуинщиками теперь можно быстро увидеть в какие ассемблерные инструкции превращается код и что можно оптимизировать.
Стоит заметить что функция импорта проектов Arduino IDE только односторонняя и пока что сырая, скетч состоящий из нескольких файлов импортировать пока что не умеет.
Интеграция работает начиная с 1.6.5 версии Arduino IDE. Если у вас поля выбора платы и девайса пустые — значит нужно обновить версию Arduino IDE.
Как вариант обхода этого ограничения — можно написать консольную программу, чтоб она все ino файлы склеивала в один большой ino файл, предназначенный специально для импорта в студию. Заодно эту программу можно доработать, чтобы оно потом автоматически подтягивало изменения из С++ проекта назад в ардуиновский проект. Думаю написать такую утилиту.
Использование Arduino с Atmel Studio 7
Настроить
- Загрузите и установите Atmel Studio 7 отсюда .
- Купите отладчик. Вы можете обойтись с помощью программиста ISP, но если вам нужны возможности отладки, что является одним из больших преимуществ использования Atmel Studio, вам понадобится отладчик. Я рекомендую Atmel ICE , поскольку он предоставляет возможности отладки для ардуинов, основанных на AVR (например, Uno, pro mini и т. Д.) И Arduinos на базе ARM, таких как Zero и Due. Если у вас бюджет, вы можете получить его без пластикового корпуса и быть осторожным, чтобы не шокировать его.
связи
- Для Uno используйте 6-контактный ICSP-кабель . Подключите одну сторону к Uno, как показано на рисунке. Подключите другую сторону в AVR-порт отладчика.
Для Arduino Pro Mini используйте кабель mini squid, как показано на рисунке, снова подключив другую сторону к разъему AVR отладчика.
Отладочные соображения
Для отладки с помощью Uno вам нужно будет отключить трассировку сбрасывания (вы всегда можете припаять ее для использования с Arduino IDE):
Используя Pro Mini, если вы собираетесь подключать последовательный порт к компьютеру с помощью платы FTDI, не подключайте линию DTR, так как это будет мешать интерфейсу Serial Wire Debug (SWD) Atmel. Я просто подключаю мощность, землю, Tx и Rx, как показано ниже. Rx и Tx на Arduino идут на Tx и Rx, соответственно, на плату FTDI. Некоторые платы FTDI помечены по-разному, поэтому, если последовательный порт не работает, замените Rx и Tx.
Вы должны будете предоставить электроэнергию отдельно для Arduino, потому что отладчик не будет ее использовать. Это можно сделать на Pro Mini через плату FTDI, как показано выше, или с помощью USB-кабеля или адаптера переменного тока на Uno.
Настройка программного обеспечения
Подключите Atmel ICE к компьютеру, запустите Atmel Studio, и теперь вы можете импортировать существующий проект Arduino.
В Atmel Studio перейдите в меню Файл -> Создать -> Проект и выберите «Создать проект из эскиза Arduino». Заполните опции, включая меню выпадающего меню и устройства.
Перейдите в Project -> yourProjectName Properties, нажмите «Инструмент», выберите Atmel ICE под отладчиком / программистом и debugWire под интерфейсом. Перейдите в Debug -> Начните отладку и перерыв. Вы должны увидеть предупреждение и спросить, хотите ли вы установить предохранитель DWEN. Выберите «ОК», отключите питание от Arduino и снова подключите его. Вы можете остановить отладку, нажав кнопку красного квадрата и начать, нажав зеленую кнопку треугольника. Чтобы вернуть Arduino в состояние, в котором он может использоваться в среде Arduino, в то время как вы отлаживаете, выберите Debug -> disable debugWIRE и закройте.
Обратите внимание, что любые добавляемые вами функции должны включать прототип функции (цикл и настройка им не нужны). Вы можете увидеть те, которые Atmel Studio добавила в верхней части эскиза, если были какие-либо функции, когда вы импортировали свой проект в Atmel Studio (см. Пример кода, например).
Поддержка C ++ 11 по умолчанию включена в Arduino 1.6.6 и выше. Это дает больше возможностей языка C ++ и позволяет повысить совместимость с системой Arduinio. Чтобы включить C ++ 11 в Atmel Studio 7, щелкните правой кнопкой мыши на файле проекта, выберите свойства, нажмите «ToolChain» слева, нажмите «Разное» под компилятором AVR / GNU C ++ и поместите -std=c++11
в «Другие флаги» поле.
Чтобы включить библиотеки в ваш эскиз
Скопируйте файл библиотеки .cpp в папку C:\Users\YourUserName\Documents\Atmel Studio\7.0\YourSolutionName\YourProjectName\ArduinoCore\src\core
, затем в Atmel Studio откройте окно Solution Explorer, щелкните правой кнопкой мыши по Arduino Core / src / основной папки, выберите add -> существующий элемент и выберите файл, который вы добавили. Сделайте то же самое с файлом библиотеки .h и папкой YourProjectName / Dependancies.
Чтобы добавить окно терминала
Вы всегда можете открыть Android IDE и использовать это окно Serial (просто выберите правильный последовательный порт), однако для добавления встроенного окна Serial в Atmel Studio перейдите в Инструменты -> Расширения и обновления, нажмите «Доступные загрузки» и выполните поиск Terminal Window или Terminal для Atmel Studio и установите его. После установки перейдите в View -> Terminal Window.
Выгоды
Программирование Arduino с помощью moder IDE, такого как Atmel Studio 7, дает вам множество преимуществ перед IDE Arduino, включая отладку, автозаполнение, переход к определению и декларации, перемотку вперед / назад, закладки и варианты рефакторинга, чтобы назвать несколько.
Вы можете настроить привязки клавиш, перейдя в Инструменты -> Параметры -> Среда -> Клавиатура. Некоторые из них действительно ускоряют развитие:
- Edit.CommentSelection, Edit.UncommentSelection
- View.NavigateForward, View.NavigateBackward
- Edit.MoveSelectedLinesUp, Edit.MoveSelectedLinesDown
- Edit.GoToDefinition
Это пример того, как выглядит простой эскиз Arduino после его импорта в Atmel Studio. Atmel Studio добавила автоматически созданные разделы вверху. Остальное идентично исходному коду Arduino. Если вы создадите проект ArduinoCore, который был создан и просмотрите папку src -> core, вы найдете main.cpp
, точку входа для программы. Там вы можете увидеть вызов функции настройки Arduino и бесконечный цикл, который вызывает функцию цикла Arduino снова и снова.
Простые устройства — STK500 и Atmel Studio 6
Ниже изложенное может пригодиться тем, у кого возникнет необходимость или желание использовать IDE AVR Studio 5 или Atmel Studio 6 от корпорации ATMEL совместно со стартовым набором STK500 от той же корпорации. Замечу, что данный опус ничто иное, как изложение моего собственного скромного опыта. {nomultithumb}
Стартовый набор я купил у некоей МФК Точка Опоры. Фирма претендует на солидность, но когда я обратился с вопросом по купленному у нее девайсу служба технической поддержки с очень умным видом от ответа уклонилась.
{ads2}Программные же изделия доступны для свободного доступа на сайте www.atmel.com. Там же находится и собственно атмеловская служба технической поддержки и уж она-то ни от каких вопросов не уклоняется, но на ответ отводит себе три дня. Единственное препятствие в общении с ней — «паки-паки языками не владею. Житие мое».
Для сопряжения STK500 с ПК я использую переходник USB-COM(RS232C) ВМ-8050 от МАСТЕРКИТ. Купил я его у Семенова Михаила. По сравнению с ЧИПом и ДИПом цена девайся у Семенова в два раза ниже. Я не первый раз имею с ним дело и причин для каких-либо претензий нет. Драйвер для BМ8050 CP210x_VCP_Win_XP_S2K3_Vista_7.exe доступен на www.silabs.com. Каких-то проблем при инсталляции драйвера у меня не возникло: установил драйвер, подключил переходник — у меня он определился как СОМ5.
В своем отечестве ответов на интересующие меня вопросы относительно STK500 я не нашел и обратился за разъяснениями в техническую поддержку корпорации АТМЕЛ. Там меня отправили на www.atmel.no/webdoc/index.html. Вот там-то я узнал все, что необходимо для выполнения стоящей передо мной задачи.
Среди прочих там есть раздел Starter Kits And Evaluation Kits. Далее Firmware Upgrade->Atmel STK500 Manual Firmware Upgrade->Atmel Studio And AVR Studio 5.
Выяснилось, что для использования набора STK500 с пятой и шестой версиями Studio необходима инсталляция программы AVR Prog. Найти ее несложно: служба техподдержки АТМЕЛ дала ссылку на нее и в инструкции по установке STK500 есть указание на эту программу. В процессе инсталляции было выдано сообщение, что уже установлен USB-драйвер поздней версии, а для устанавливаемой программы необходима более ранняя версия. Нажатия на кнопку «ОК» достаточно для установки требуемой версии USB-драйвера.
После выполнения всех этих манипуляций стало возможно заняться собственно обновлением программного обеспечения STK500.
Подключить STK500 к IDE Atmel (AVR) STUDIO 6 (5) можно двумя способами.
Первый: View->Available Atmel Tools
Появляется окно Available Tools
Правый клик в любом месте этого окна вызывает следующее окно:
Нажимаем Add Target. Получаем окно Add Target:
Нажимаем Apply. STK500 подключен!
Второй способ подключения STK500: Tools->Add Target
В результате нажатия на Add Target получаем окно того же наименования. Дальнейшие действия — как написано выше.
После подключения STK500 следует щелкнуть правой кнопкой мыши в поле STK500 (COM5) Program only Connected. Появится окно
Upgrade! Появится окно с инструкцией:
Действуем по инструкции:
- Выключить питание STK500;
- Удалить все шлейфы и МК, если что-либо уже установлено;
- Нажать кнопку PPROGRAMM и, удерживая ее, включить питание. Отпустить кнопку. Именно такая последовательность подтверждена атмеловской техподдержкой. Загорается только индикатор питания.
- Нажать ОК.
Появляется окно
Start Upgrade! Одно за другим следуют три окна:
Нажимаем ОК. Выключаем питание набора.
STK500 готов к работе с Atmel (AVR) STUDIO 6 (5).
Как установить Atmel Studio? — Windows (x86 / x64)
Примечание
Эта статья является частью Руководства по программированию встроенного микропрограммного обеспечения C Arduino / ATmega328p . Попробуйте изучить домашнюю страницу курса, чтобы найти статьи на похожие темы.
Учебное пособие по Arduino Уровень встроенного регистра C Мастер-класс Arduino
Также посетите страницу выпуска для встроенной библиотеки аппаратной абстракции C на уровне регистров и код для AVR .
Введение
Установить Atmel Studio довольно просто, но перед этим мы должны убедиться в системных требованиях, чтобы легко и приятно программировать микроконтроллеры Atmel.
Доступны два типа установщика: «Веб-установщик» и «Автономный установщик». Веб-установщик рекомендуется Atmel, если у вас есть подключение к Интернету. В противном случае автономный установщик будет работать нормально. Я рекомендую Offline Installer.
Microchip выпустила последнюю версию программы установки, которая имеет ребрендинг. Я по-прежнему рекомендую старую версию Atmel Studio 7.0, выпущенную компанией Atmel, поскольку она стабильна и отлично работает прямо из коробки.
Что вы узнаете
- Как установить Atmel Studio в Windows 10?
- Как установить Atmel Studio 7?
- Как установить старую версию Atmel Studio?
- Как установить официальную и профессиональную IDE для Arduino / ATmega328p?
Поддерживаемые операционные системы
- Windows 7 с пакетом обновления 1 или выше
- Windows Server 2008 R2 с пакетом обновления 1 или выше
- Windows 8/8.1
- Windows Server 2012 и Windows Server 2012 R2
- Windows 10
Поддерживаемые архитектуры
Требования к оборудованию
- Компьютер с процессором 1,6 ГГц или выше
- ОЗУ
- 1 ГБ ОЗУ для x86
- 2 ГБ ОЗУ для x64
- Дополнительные 512 МБ ОЗУ при работе на виртуальной машине
- 6 ГБ свободного места на жестком диске дисковое пространство
Скачать Microchip Studio (Последняя версия)
Название | Дата | Скачать |
---|---|---|
Microchip Studio для устройств AVR и SAM 7.0.2542 Веб-установщик | 01 ноя 2020 | Скачать |
Microchip Studio для устройств AVR и SAM 7.0.2542 Автономный установщик | 01 ноя 2020 | Скачать |
Архивы IDE Atmel Studio 7 (старые)
Этапы установки для Atmel Studio 7.0
Условия и положения лицензии
Примите Условия использования и выберите путь установки. Рекомендуется оставить значение по умолчанию.
Выбрать архитектуру
Выберите необходимые архитектуры, с которыми вы хотите работать.
Выбор добавочных номеров
Выберите, если вам нужны примеры проектов для начала.
Проверка системы
Программа установкиAtmel Studio проверит вашу систему перед началом установки.
Установка
Установка займет некоторое время в зависимости от производительности вашей системы.
Установка завершена
Рекомендуется перезагрузить систему.
Установка завершена
После перезапуска системы установка должна завершиться с этим окном. Вы можете запустить Atmel Studio.
Создание проекта в Atmel Studio 7
Atmel Studio 7 имеет мастер создания проекта, который поможет вам создать проект. Вы можете ввести это с помощью следующих опций:
- Файл> Создать> Проект из главного меню
- Нажмите Ctrl + Shift + N
- Щелкните значок New Project
Откроется окно нового проекта.В этом диалоговом окне можно указать используемый язык программирования и шаблон проекта.
Выберите опцию «Исполняемый проект GCC C» из списка шаблонов, чтобы сгенерировать простой исполняемый проект. Дайте ему имя, например MyFirstProject, и введите путь, по которому вы хотите сохранить проект на вашем компьютере.
Щелкните ОК .
Все проекты Atmel Studio относятся к решению, и по умолчанию Studio будет использовать одно и то же имя как для вновь созданного решения, так и для проекта.Поле имени решения можно использовать для указания имени решения вручную.
Флажок «Создать каталог для решения» установлен по умолчанию. Если этот флажок установлен, Atmel Studio создаст новую папку с указанным именем решения в месте, указанном в поле «Местоположение».
Затем появится окно Выбор устройства . Необходимо указать, для какого устройства будет разработан проект. Список устройств будет представлен в диалоговом окне Выбор устройства , которое можно пролистывать.Можно сузить поиск, используя раскрывающееся меню «Семейство устройств» или поле поиска.
В строке поиска введите ключевые символы для устройства, которое вы собираетесь использовать, затем выберите точное устройство из появившегося списка. В этом примере «817» использовалось для поиска и выбора устройства ATtiny817 . Затем нажмите OK , чтобы создать проект.
Поиск по запросу «крошечный» предоставит список всех поддерживаемых устройств ATtiny.Поиск по запросу «мега» предоставит список всех поддерживаемых устройств ATmega. Инструменты> Диспетчер пакетов устройств можно использовать для установки поддержки дополнительных устройств.
Новый проект исполняемого файла GCC C был создан для устройства AVR ATtiny817. Обозреватель решений в правой части окна отобразит содержимое вновь созданного решения.
Автоматически создается файл main.c с рекомендуемым файлом #include для выбранного устройства.
Теперь ваш проект создан и готов к разработке кода приложения!
новых подключаемых модулей для Eclipse IDE и Atmel Studio 7
Хорошие новости! Мы обновили как подключаемый модуль Eclipse , так и подключаемый модуль Atmel Studio 7 для Tracealyzer 4, что упростило анализ и отладку программного обеспечения на основе RTOS с помощью Tracealyzer.
Плагин Eclipse работает с большинством IDE на основе Eclipse для микроконтроллеров на базе Arm, таких как Atollic TrueStudio, MCUXpresso, Simplicity Studio и т. Д.
Оба плагина поддерживают отслеживание моментальных снимков FreeRTOS, SafeRTOS, Micrium µC / OS-III, а также ThreadX. Плагины позволяют Tracealyzer считывать данные трассировки, используя ваш обычный интерфейс отладки, поэтому плагины работают с любым устройством и отладочным зондом, которые поддерживает ваша IDE.
На приведенном ниже снимке экрана показан новый плагин Atmel Studio, но плагин Eclipse выглядит и работает точно так же. Обратите внимание, что единственное видимое — это новое меню «Percepio» в вашей среде IDE. Он может выглядеть просто как «пусковая установка», но это позволяет Tracealyzer связываться с вашим отладчиком для получения данных трассировки.
Как пользоваться:
- Загрузите и установите Tracealyzer, если у вас его еще нет.
- Включите трассировку в вашем проекте, как описано в руководстве пользователя Tracealyzer для вашей конкретной ОСРВ.
- Установите плагин, как описано ниже. Это создаст в вашей среде IDE меню «Percepio».
- Запустить сеанс отладки и запустить его, чтобы трассировка была записана.
- В Tracealyzer выберите опцию «Снимок» (т.е. красную кнопку с символом камеры).Это сохраняет файл трассировки и отображает его в Tracealyzer.
Если вы предпочитаете сохранять трассировку из среды IDE, вы также можете выбрать в меню «Percepio»> «Сохранить трассировку снимка». Это также обновляет представления Tracealyzer.
Примечание: Хотя целевая система должна быть остановлена при сохранении данных трассировки в режиме моментального снимка, плагин сделает это за вас автоматически. Если целевая система работает, когда вы сохраняете трассировку снимка, плагин остановит систему, загрузит данные, а затем снова возобновит выполнение.
Установка подключаемого модуля Eclipse
См. Eclipse Marketplace или нашу страницу плагинов Eclipse.
Установка плагина Atmel Studio
Убедитесь, что вы используете Atmel Studio версии 7. Старые версии не поддерживаются.
Посетите галерею Microchip, найдите «Percepio Trace Exporter» и загрузите файл .vsix.
Или вы можете просто загрузить AtmelTzExtension.zip и распаковать AtmelTzExtension.vsix.
Убедитесь, что Atmel Studio закрыта, и дважды щелкните файл.vsix файл. Снова запустите Atmel Studio.
Техническая поддержка
Если у вас есть какие-либо вопросы, пишите на [email protected].
Новая поддержка Atmel Studio 7.0 и Windows 10
Теперь мы поддерживаем использование контроллеров роботов Orangutan, роботов 3pi и программатора Pololu USB AVR с новым Atmel Studio 7.0 и Windows 10.
Чтобы сделать это возможным, мы обновили установщики Windows для библиотеки Pololu AVR C / C ++ для поддержки Atmel Studio 7.0. Это означает, что когда вы устанавливаете библиотеку в Windows, она автоматически копирует свои файлы в цепочку инструментов AVR GCC внутри Atmel Studio 7.0 и устанавливает шаблоны проектов для поддерживаемых устройств. Добавление поддержки Atmel Studio 7.0 потребовало от нас добавления кода для определения его местоположения и устранения двух неожиданных проблем. Вы можете увидеть изменения, внесенные в историю коммитов libpololu-avr, на GitHub.
Второй экран установщика библиотеки Pololu AVR C / C ++ для Windows. |
---|
Мы также протестировали установщик библиотеки, Atmel Studio 7, Pololu USB AVR Programmer и Orangutan SVP в Windows 10. Все работало нормально, поэтому теперь мы поддерживаем использование этих продуктов в Windows 10.
Импорт эскиза Arduino в Atmel Studio 7.0
Atmel Studio 7.0 — это последняя версия Atmel Studio, интегрированной среды разработки (IDE) для AVR от Atmel. В нем есть интересная новая функция, которая позволяет создавать новый проект из эскиза Arduino.Идея состоит в том, что вы можете импортировать эскиз Arduino, скомпилировать его с помощью Atmel Studio, а затем загрузить его на Arduino-совместимую плату с помощью отладчика от Atmel. Это позволит вам проходить программу по одной строке за раз, поскольку она работает на реальном оборудовании, и видеть, что программа делает на каждом шаге. Это также позволит вам использовать расширенные функции редактирования кода Atmel Studio. Когда вы импортируете эскиз в Atmel Studio 7.0, исходный код вашего эскиза вместе с исходным кодом ядра Arduino и кодом всех используемых вами библиотек копируется в каталог для нового проекта.
Однако новая функция поддерживает только определенный небольшой набор плат от Arduino и Adafruit, что означает, что вам придется выбрать плату, аналогичную вашему Orangutan, 3pi-роботу или A-Star, а затем изменить настройки проекта (например, макрос тактовой частоты F_CPU), чтобы он работал. Atmel Studio не поддерживает загрузчики Arduino, поэтому запрограммировать A-Star без внешнего программиста будет непросто. Наш программатор Pololu USB AVR не поддерживает отладку, поэтому, если это единственный программист, который у вас есть, то использование Atmel Studio для программирования вашего устройства не имеет большого значения, вместо того, чтобы просто использовать Arduino IDE.Эта функция кажется не очень доработанной и все еще имеет ошибки, с которыми я столкнулся, когда пытался импортировать эскиз, содержащий несколько файлов .h и .cpp.
Если вы хотите опробовать новую функцию, просто откройте Atmel Studio 7.0, выберите File> New> Project… , а затем выберите «Create Project from Arduino sketch», который является шаблоном, который можно найти в разделе «C / C ++ ».
Пример скетчаArduino Работает нормально, при экспорте в решение Atmel Studio 7 появляется сообщение об ошибке: «Wdt» не был объявлен
Документация поarduino: Использование Arduino с Atmel Studio 7.Я рекомендую Atmel ICE, поскольку он предоставляет возможности отладки для AVR. В Atmel Studio перейдите в меню «Файл»> «Создать»> «Проект» и выберите «Создать проект из эскиза Arduino». затем в Atmel Studio откройте окно обозревателя решений и щелкните правой кнопкой мыши Arduino.
Среды Windows 7/8. Atmel Studio обеспечивает управление проектами 11.3.2. Проверка и программирование часто завершаются ошибкой переполнения буфера последовательного порта. Сообщение Поддержка импорта библиотек в ранее импортированные эскизы.Чтобы скомпилировать проект, нажмите клавишу F7 или выберите «Сборка решения» в меню «Сборка».
Мне нужно загрузить эскиз экспортированного файла bin из Arduino IDE и загрузить его на плату SAMD21, где показано, как загрузить скомпилированную программу на чип с помощью Atmel Studio и Atmel ICE. Я не пробовал, но думаю, может сработать. 8 Если все в порядке, вы можете написать набросок и загрузить его на свою доску.
Создание из Arduino Sketch В этом разделе описывается процесс создания нового проекта Atmel Studio.Темы для начинающих. Видео: Создание нового проекта. Задача: создать новый исполняемый проект GCC C для AVR ATtiny817 или ссылаться на него из приложений, которым требуется повторное использование кода той же функциональности.
Полное руководство по использованию программатора Pololu USB AVR. мы рекомендуем следовать Краткому руководству по программированию Pololu AVR вместо этого руководства. Atmel Studio — это бесплатная интегрированная среда разработки IDE, предоставляемая Atmel. В этом руководстве это руководство было написано для Atmel Studio 7.0 и Atmel Studio 6.2.
Можно ли установить Visual Studio и Atmel Studio на один компьютер? Из-за ошибки Visual Studio 2017 для использования vMicro> Toggle> Hidden Files проводник решений не должен находиться в представлении Показать все файлы. Visual Micro обеспечивает создание общих библиотек одним щелчком мыши. Рекомендуется VS2017 или Atmel Studio 7.
Советы и новости для Arduino IDE для Atmel Studio 7 полностью совместимы, как и в Visual Studio, сочетают отладку программирования Atmel и симуляторы Решение: Восстановлено в версиях Visual Micro после 1 декабря 2016 г. отобразится запрос на некоторые функции Arduino, не связанные с Visual Micro, такие как «Импорт эскиза».
Для начала вы можете либо создать новый проект с нуля, либо открыть существующий проект и открыть его с помощью вашей любимой среды IDE для дальнейшей разработки. Для получения дополнительной информации о том, как использовать Atmel START, прочтите руководство по началу работы или посмотрите наши видеоуроки. ATmega128L8MU AVR QFN64 64 128 КБ 4 КБ.
Для всех микроконтроллеров AVR требуется интегрированная среда разработки, например Atmel Studio. Atmel Studio 7 включает ассемблер компилятора GCC C и C ++, а также компонент «Теперь, подождите, пока студия Atmel создаст проект и файл main.c для написания программы. Я знаю, что это не по теме, но я был бы признателен за любую помощь:
Обзор средств разработки AVR и SAM В этом разделе будет описан процесс создания нового проекта Atmel Studio. Темы для начинающих. Видео: Создание нового проекта. Задача: создать новый исполняемый проект GCC C для AVR Tools. Можно использовать диспетчер пакетов устройств для установки поддержки дополнительных файлов.
Я все еще пытаюсь понять, как работает VS. При использовании AVRStudio вы получаете новую версию библиотеки AVR, и, похоже, у меня все в порядке, используя редактор кода и вставляя его в среду IDE для быстрой загрузки. Возможно, вы захотите экспортировать этот проект как шаблон в каталог шаблонов.
Visual Micro — это инструмент разработки, совместимый с Arduino IDE, который позволяет программировать и Home Arduino для Microsoft Visual Studio и Atmel Studio 7. Arduino IDE для Visual Studio Купите Arduino для Visual Studio через 45 дней, чтобы получать поддержку и постоянные обновления. Открытие и создание проектов Arduino. С легкостью.
Я довольно много узнал об использовании Atmel Studio для файлов INO, но должен быть в среде Arduino IDE. Если это вообще возможно, или напишите проект в Arduino.для экспорта проекта Atmel Studio в файл INO Arduino как atmel Studio Вы можете только вручную скопировать код в новый файл INO Arduino.
Это руководство проведет вас через этапы отладки Arduino для обоих устройств. Например, если вы хотите разработать эскиз, который работает на плате Arduino, и для поиска решений проблемы рекомендуется использовать Google. Atmel Studio IDE — это бесплатное программное обеспечение, которое предлагает конкурентную отладку.
Этот учебный курс по началу работы с Atmel Studio 7 познакомит вас со всеми основными функциями IDE.Это пример приложения, основанного на программных компонентах, таких как совместимый отладчик, который работает со Studio 7.0 или новее, или другой вариант создания нового проекта Atmel Studio из Arduino Sketch.
В документации указано, что Atmel Studio 7 теперь поддерживает прямое создание КАК ПРОБЛЕМА: Создание проекта из эскиза Arduino не удается правильно построить для Arduino Arduino Zero Libraries 1.6.11 Visual Studio 2015 14.0.25420.1 в той же системе После загрузки решения нажмите F7 построить решение.
Зачем нужна еще одна IDE, если у нас есть хорошо работающая? Это очень небольшое руководство, которое поможет вам начать работу с Atmel Studio 7 в качестве IDE. Arduino IDE «Board» Arduino / Genuino Uno «Device» atmega328P и нажмите «ОК»; Аргументы: для этого вам нужно будет загрузить свой скетч через Arduino IDE, обычно используя файл.
Отладка 2: условные точки и точки прерывания действия. Этот учебный курс по началу работы с Atmel Studio 7 проведет вас через все службы, такие как драйверы и промежуточное программное обеспечение, для адаптации вашего встроенного программного обеспечения. В этом разделе будет описан процесс создания нового проекта Atmel Studio из эскиза Arduino.
Выберите инструмент отладчика / программатора AtmelICE и выберите debugWIRE из списка. Второй шаг для программирования Arduino с помощью ATMEL Studio 7 — добавить AVRdude в качестве внешнего инструмента. Шаг 3. Связанные вопросы и ответы. Вы можете увидеть эскизы в папке Sketchbook, выбрав «Файл»> «Sketchbook».
Пошаговое руководство по началу работы с анализом данных в Python После загрузки набора данных вам нужно будет прочитать файл .csv как фрейм данных в Python. создавать интерактивные диаграммы и требует немного большего знакомства с Python для освоения.
Скомпилируйте скетч в загрузчик с помощью Atmel Studio или Arduino IDE, где-то прочитав, что экспорт скомпилированного двоичного файла не полностью работает на всех архитектурах. Я только что протестировал его с Arduino AVR Boards Uno и т. Д., И он работал нормально.
Я использую Atmel Studio 7 и успешно построил проект QSPIProgrammer. У меня есть 2 общих компоновщика> Библиотеки, но проект не компилируется, что приводит к следующим ошибкам. Пожалуйста, дайте мне знать, как решить эту проблему.
Visual Micro — это совместимое с Arduino решение для загрузки и отладки сборки для Visual Studio 2017 и 2019.Это часто относится ко всем расширениям Microsoft, если установлены Atmel Studio или более ранние версии Visual Studio.
Один только анализ данных может дать нам ценную информацию для решения нашего простого исследовательского анализа данных EDA datasetpd.readcsv ‘/ content / cabin.csv’ # Прочтите файл CSV Как освоить Pandas для науки о данных.
Флажок «Создать каталог для решения» установлен по умолчанию. Если этот флажок установлен, Atmel Studio создаст новую папку с указанным именем решения.
Здравствуйте, я хочу включить свою собственную библиотеку I2C в папку библиотек Arduino. Я скомпилировал коды в Atmel Studio 7 и работал нормально. Поэтому я скопировал папку в Arduino.
Совет. Хотя надстройка Excel для Tableau больше не поддерживается, Data Interpreter может помочь вам изменить форму данных для анализа в Tableau. Что делает Data Interpreter.
Недавно надстройка Visual Micro для Atmel Studio упростила этот процесс, поэтому я создал это руководство, чтобы показать установку библиотеки Linduino и IDE Arduino.
В сложных проектах можно комбинировать любой эскиз или библиотеку Arduino с вашим собственным кодом. Atmel занимает уникальное привилегированное положение в Arduino и.
Описание данных. Обзор. Данные разделены на две группы: обучающий набор train.csv; тестовый набор test.csv. Обучающий набор следует использовать для построения вашего.
Поскольку процесс анализа необработанных данных для поиска тенденций и ответов на вопросы, определение аналитики данных охватывает широкий диапазон ее области.Тем не мение.
Существует также бесплатная версия для Atmel Studio 7 в элементах и расширениях Atmel Gallery, таких как отладчик Visualizations для подключаемого модуля Visual Micro.
Atmel Studio 7 также может легко импортировать ваши эскизы Arduino как проекты C ++, обеспечивая простой путь перехода от Makerspace к Marketplace. Атмель.
Исследуйте, анализируйте и делитесь данными о качестве. Подробнее о миниатюре для набора данных «Данные о ценах на жилье в Калифорнии» Дополнительные функции 1 Задача 1 Файл CSV.
Например, LiquidCrystal.h не был виден, потому что он не был импортирован ни в одну подпапку в папке проекта. Если я хочу исправить это вручную, я этого не сделаю.
Предварительные требования. Большую часть обучения можно выполнить с помощью редактора и симулятора, чтобы охватить все, что изложено ниже.
Поскольку реинжиниринговая прошивка была сделана по эскизу Arduino, я сначала использовал эту среду для компиляции и сборки двоичного файла, а затем загрузил его в файл.
Я могу собрать и запустить плату Arduino Nano с помощью Arduino IDE.Но мне нравится работать с Atmel Studio 7 — лучшая IDE! затем импортирую эскиз.
Этот учебный курс по началу работы с Atmel Studio 7 проведет вас через все этапы разработки проектов на основе START, которые поддерживаются в Studio 7.
У меня были проблемы с Atmel Studio в прошлом, когда я не сообщал IO.h чему-то другому, если это возможно, и, возможно, это решит вашу проблему.
Недавно я загрузил AtmelStudio 7 и установил Visual Micro, но оказалось, что там появляется опция Arduino Project, но она не активна.
Для импорта запустите Atmel Studio 7. Затем выберите File New Project. Выберите «Создать проект из эскиза Arduino» и нажмите «ОК». Перейдите к.
Visual Micro — это расширение для Atmel Studio, которое позволяет разрабатывать любой проект Arduino, компилировать и затем загружать в любой Arduino.
. MKRZero и я в настоящее время программируем его с помощью отладчика JLink EDU Segger и Atmel Studio 7. Пример кода мигания работает нормально.
Arduino IDE для Atmel studio 7 — это полностью совместимая с Arduino среда развертывания и отладки сборки редактирования и отладки для новичков и опытных пользователей.
Загрузка данных. Самый распространенный способ загрузить файл CSV в Python — использовать DataFrame из Pandas. импортировать панды как pd testset.
Atmel Studio 7 Atmel теперь принадлежит Microchip и позволяет импортировать эскизы Arduino и отлаживать их.
В этой статье описаны шаги по созданию и связыванию новой статической библиотеки GCC C в среде Atmel Studio IDE.
33. Как импортировать только каждую n-ю строку из CSV-файла для создания фрейма данных? Сложность.
компиляция g2 на windows 10 и atmel studio 7
Эта страница предназначена для настройки и компиляции проекта g2 в Windows 10 с помощью Atmel Studio 7
Виртуальная машина VMWare на OSX или Linux
Эти инструкции применимы, если вы используете виртуальную машину VMware в OSX или Linux.Если вы используете собственную систему Windows или используете другую виртуальную машину, вы можете пропустить эти
- Настройте виртуальную машину с как минимум 4 ГБ ОЗУ и более 30 ГБ жесткого диска, выделенного фрагментами 2 ГБ
- Когда вас просят интегрировать / изолировать, лучше выбрать интегрированный, чтобы вы могли обмениваться файлами между файловыми системами. Таким образом, вы можете использовать собственные инструменты OSX или Linux для git и других функций.
- Перед установкой рекомендуется сделать снимок виртуальной машины, чтобы можно было исправить ошибки без записи активаций Windows.Вы можете удалить моментальный снимок позже, чтобы восстановить это пространство.
- Немногое VMware voodoo, которое может быть полезно
- Есть некоторые проблемы с Windows 10 и VMware 8, которые могли или не могли быть решены. В любом случае вам нужно получить инструменты VMware, распознающие диск Z: или AS7 не будет компилироваться — поскольку он не может использовать пути UNC.
Дисковое пространство
Atmel Studio 7 весит 2,01 Гбайт, поэтому вам нужно столько места на вашем диске C: (виртуальном или другом). Сам проект g2 загружает всю цепочку инструментов (в g2 / Motate / Tools / win32), поэтому он также довольно большой — в настоящее время почти 800 МБ.На вашем диске Z: должно быть не менее 1 ГБ свободного места, если вы устанавливаете его там.
Атмель Студия 7
Для компиляции G2 в Windows с помощью Atmel Studio вам понадобится Atmel Studio 7 build 1006 (или выше), установщик Service Pack 1 — с .NET. Мы рекомендуем чистую машину или виртуальную машину.
Перейдите в Atmel и загрузите установщик Atmel Studio 7 с установочным пакетом .NET.
- Обязательно получите тот, который содержит .NET, часть (около 800 Мбайт), если вы не уверены, что у вас уже есть.чистая доработка, необходимая AS (Framework 4).
- Также могут быть обновления драйверов USB, которых нет в основном файле. Если да, возможно, они вам тоже понадобятся. Вам не понадобятся пакеты деталей или другие файлы.
- Они требуют, чтобы вы либо зарегистрировались, либо заполнили «гостевую» форму. В противном случае это бесплатно.
Выполните весь процесс установки.
- Следует установить .NET, Microsoft Studio, Atmel Drivers, Atmel Studio
- Первый запуск AS7
- Вам не нужен Atmel Solutions Framework (ASF), когда его спросят.Вы не захотите его обновлять, и вы можете отключить уведомления об этом. НЕ используйте проект ASF (например, плату Arduino Due), если вы играете с G2 Core, иначе вам придется отказаться от множества вещей. (Мы предоставляем вам проекты.)
- Вам, , понадобятся драйверы USB, когда вас спросят.
Git для Windows
Makefiles проекта полагается на Git для Windows, поэтому, даже если вы используете Git в своей собственной ОС для всех остальных действий, его необходимо установить в среде Windows.
- Перейдите на официальный сайт Git, загрузите и установите Git для Windows. Выберите подходящий для своей виртуальной машины — 32-разрядный или 64-разрядный (версия 2.9.3 на момент написания этой статьи).
- Диалоговое окно параметров 1: выберите BASH (по умолчанию, но любой должен работать)
- Диалоговое окно параметров 2: выберите вариант 2, оформить заказ как есть, окончания строк в стиле Unix
- Диалоговое окно параметров 3: выберите MinTTY (по умолчанию, но не имеет значения для наших целей)
- Диалоговое окно параметров 4: оба флажка включены, но отключаются, если окна странные (работает для нас)
- , когда он спрашивает вас, хотите ли вы, чтобы значки на рабочем столе, вы могли бы захотеть получить Git Bash, чтобы вы могли отлаживать среду Windows (если до этого дойдет)
Клонирование репозитория Git
Существует несколько способов клонировать репозиторий Git.
- Прямой клон в окне терминала
- Использовать приложение Github для Windows
Клонирование репозитория Git — прямой клон
Если у вас уже есть Git на вашем хост-компьютере (то есть вы работаете в Windows и уже имеете учетные данные git или используете экземпляр VMWare Windows и у вас есть учетные данные git на хосте), вы можете просто выполнить клонирование git. Мы используем ssh-форму, поскольку, по нашему опыту, она более беспроблемна, чем http-форма. Откройте окно терминала и перейдите в родительский каталог, в который вы хотите установить репозиторий github g2
.Тип:
git clone [адрес электронной почты защищен]: synthetos / g2.git
git обновление подмодуля --init
git config fetch.recurseSubmodules по запросу
Это должно сработать.
Клонирование репозитория Git — приложение Github для Windows
приложение GitHub для Windows — это простой способ работать с Windows.
- Загрузите и установите приложение GitHub.
- Войдите на сайт GitHub — зарегистрируйтесь, если нужно, это бесплатно.
- Перейдите на страницу проекта G2 и нажмите кнопку
Clone in Desktop
.
- Приложение GitHub должно открыться и спрашивать, где сохранить новый репозиторий. Расположение по умолчанию, вероятно, будет достаточно.
В приложении GitHub щелкните безымянное меню в верхнем левом углу, а затем щелкните
edge
, чтобы проверить граничную ветвь.В меню с шестеренкой в правом верхнем углу окна Github выберите «Открыть в Git Shell», чтобы начать сеанс терминала.
1. В появившемся терминале выполните следующую команду:обновление подмодуля git --init git config fetch.recurseSubmodules по запросу
(Удобство) В меню с шестеренкой в правом верхнем углу окна Github выберите «Открыть в проводнике», чтобы показать расположение только что извлеченного репо.
Примечание: Эти инструкции предназначены для отладчика Atmel-ICE. Многие из этих инструкций также работают с Atmel SAM-ICE. Также возможна загрузка напрямую через USB или последовательные порты, но в этом случае нет отладчика в реальном времени.
Загрузка проекта
Каталог проекта
g2
является родительским для всех исходных файлов и файлов проекта Atmel. подкаталогg2core
содержит основной проект и файл проекта g2coreg2core.cppproj
, аMotate
содержит модуль и его файл проекта. Как правило, вам не нужно работать в Motate.Если вы изменили ветку git, вам следует запустить обновление подмодуля
git
, чтобы убедиться, что правильная фиксация Motate связана с имеющимся у вас g2core.В любом случае рекомендуется запустить это перед открытием проекта.Откройте AS7, дважды щелкнув
g2core.atsln
в родительском каталоге g2. AS7 должен запуститься — скажите ему, чтобы он нам доверял. В AS7 есть ошибка, поэтому вы можете получить это предупреждение, которое можно проигнорировать:[предупреждение] Ошибка при обновлении настроек проекта: ссылка на объект не соответствует экземпляру объекта
Примечание. Git настроен на игнорирование изменений в некоторых зависимых файлах проекта, чтобы они не вызывали хаоса.Это означает, что для фиксации изменений в этих файлах их необходимо специально добавить в фиксацию по имени.
Составление проекта
Для компиляции проекта:
- Выберите платформу, для которой вы строите (для распиновки Due with gShield выберите
gShield
) - Нажмите кнопку «Создать проект» или «Создать решение» — в данном случае они одинаковы. (Их также можно найти в меню «Сборка».)
- Будет создан файл с именем
g2core.elf
и в каталоге / bin платы, которую вы собираете, - Это также создаст файл
g2core.elf
в каталогеg2core
- Вам понадобится один из этих файлов для загрузки на доску. С опцией 5, описанной ниже, он будет использовать этот файл автоматически. Все остальные способы загрузки на доску потребуют от вас вручную найти этот файл
- При первой компиляции проекта он загрузит всю цепочку инструментов и установит ее в каталог Motate Tools.Это может занять некоторое время (~ 200 Мбайт). Вам понадобится хорошее интернет-соединение.
- Настройте устройство и инструмент Atmel-ICE в окне свойств проекта g2core, которое можно найти, щелкнув правой кнопкой мыши корневой каталог g2core на панели обозревателя решений.
- На вкладке «Устройство» выберите один из следующих вариантов:
ATSAM3X8C
для платы v9 илиATSAM3X8E
для Due или подходящий процессор M4 или M7 для вашей конкретной платы - На вкладке «Инструмент» выберите свой
Atmel-ICE
, который должен быть подключен, чтобы он появился.Если у вас более одного подключенного устройства, вы можете идентифицировать их по последним 4 цифрам серийного номера . - Интерфейс должен быть
SWD
. JTAG не всегда работает - Теперь вы можете программировать и отлаживать кнопки, обозначенные на рисунке цифрой 5, как описано в шаге 5 ниже.
- (альтернативно) Подключите, настройте и протестируйте инструмент Atmel-ICE Tool в окне программирования устройства:
- Инструмент должен быть Atmel-ICE. Если у вас более одного подключенного устройства, идентифицируйте его по последним 4 цифрам серийного номера.
- Устройство является одним из:
ATSAM3X8C
для платы v9 илиATSAM3X8E
для Due или подходящего процессора M4 или M7 для вашей конкретной платы - Интерфейс должен быть
SWD
. JTAG не всегда работает - Удар Применить
- Вы можете нажать «Прочитать подпись устройства», чтобы убедиться, что вы подключены. Или просто перейдите на вкладку «Воспоминания» .
- Программа из вкладки Воспоминания. Убедитесь, что выбран файл g2core.elf в основном каталоге g2core или правильный каталог / bin.Вы также можете использовать эту опцию для программирования любого двоичного файла (особенно полезно, если вы его не компилировали)
- Для компиляции и загрузки без отладки (слева) или с отладкой (справа) нажмите одну из этих двух кнопок. Они также доступны в меню «Отладка».
Загрузка G2 на целевую плату (без Atmel ICE)
Чтобы прошить G2 (используя файл TinyG2.bin, который вы только что создали на шаге 2 выше) на целевой плате без с помощью отладчика, такого как Atmel ICE или Atmel SAM-ICE, посетите страницу «Прошивка G2 с Windows».
Используются следующие теги. Они могут обратиться к проблеме, а также к возможным решениям:
- [w32], [w64]: эта проблема затрагивает конфигурации Windows32 / Windows64
- [все]: эта проблема затрагивает все известные нам конфигурации.
Это вещи, которые мы видели неудачными. Не стесняйтесь добавлять в этот список, если найдете проблемы, для которых есть решения.
Проблема : Zip-архивы не распаковываются [w32]mkdir -p win32 && \ cd win32 && \ ../7za/7za x -ogcc-arm-none-eabi "gcc-arm-none-eabi-4_9-2015q2-20150609-win32.zip" / usr / bin / sh: ../7za/7za: Неверный аргумент
- Решение — Может быть открыта только одна копия AS6. Закройте все копии AS6, перезапустите ОДНУ и снова запустите сборку.
На самом деле действительно легко запустить несколько экземпляров AS6. При нажатии на нее иногда нет обратной связи о том, что был получен щелчок. Затем через 15-30 секунд вы можете увидеть какое-то указание.Но обычно к этому времени вы щелкаете по нему еще раз, думая, что вы, должно быть, щелкнули неправильно в первый раз. Вуаля. 2 экземпляра.
Проблема : Git не найден [w32] [w64]- Git не установлен в вашем экземпляре Windows. Инструкции по установке приведены выше в разделе «Что необходимо».
Atmel Studio 7 и SAMD21 — ARM Cortex M0 + — Электронный блог
После нескольких лет использования Atmel Studio IDE для 8-битных микроконтроллеров AVR пришло время перейти на 32-битную ARM, поэтому я купил недорогую плату ARM M0 от Ebay, WeMos (RobotDyn) M0-mini (Atmel SAMD21G18A ARM M0 +).Многие платы на базе SAMD21G18A без чипа EDBG будут работать нормально со следующим описанием, включая Sparkfun samd21 mini breakout, Arduino MKRZero, Adafruit Feather M0, Seeeduino M0 +, Seeeduino Xaio. Плата RobotDyn M0-mini, показанная ниже, близка к 1: 1 копии коммутационной платы Sparkfun samd21 mini. Схема для обеих плат находится в этом ZIP-файле: Board_schematics
Этот тип платы SAMD21 Robotdyn / WeMos содержит 10-контактный заголовок SWD (отладка Cortex), который можно увидеть рядом с кнопкой сброса в правой части изображения выше.Для прошивки SAMD21G18A я использовал J-Link EDU mini, который используется только в некоммерческих целях. Программное обеспечение для J-Link EDU mini прекрасно интегрируется с Atmel Studio 7, поэтому подключение J-Link EDU mini к встроенному заголовку SWD позволяет прошивать выходные файлы из Atmel Studio 7. Использование платы SAMD21 непосредственно с Atmel Studio IDE с USB-кабелем всего , подходящий загрузчик должен быть внутри MCU. Я сделал специальную версию загрузчика из платы Arduino MKRZero для использования с платой Robotdyn / WeMos.Описание того, как создать собственный загрузчик SAMD21, совместимый с Arduino, можно найти здесь: Загрузчик SAMD21. Следующие шаги применимы к Win10 x64 в качестве ОС ПК.!
Шаги, необходимые для прошивки загрузчика и настройки Atmel Studio для использования загрузчика для прошивки:
- Подключите плату SAMD21 к ПК через USB-кабель. На этом этапе тип установленного загрузчика, если таковой имеется! , можно протестировать.
- Перейдите в Панель управления -> Диспетчер устройств -> Порты (COM и LPT)
- Дважды нажмите кнопку сброса платы (двойное нажатие), чтобы увидеть, появляется ли новый COM-порт.
- Если вы видите новый COM-порт, помните о номере COM-порта, и шаги 5-10 можно пропустить.!
- Необходимо запрограммировать загрузчик из-за отсутствия COM-порта на шаге 1..3. Как упоминалось выше, используется мой настроенный загрузчик, здесь он в виде заархивированного файла: настроенный загрузчик SAMD21.
- Загрузите и установите Atmel Studio IDE (я использовал версию 7.0.2397) отсюда: Atmel Studio скачать
- Подключите J-Link EDU mini к 10-контактному разъему SWD на плате SAMD21:
- Подайте питание на плату через разъем USB.В Atmel Studio выберите Инструменты -> Программирование устройств. Инструмент как J-Link. Устройство как SAMD21G18A. Щелкните Применить. Выберите «Воспоминания» и используйте шестнадцатеричный файл загрузчика из шага 5. Нажмите «Программа», чтобы прошить загрузчик:
- Отключите J-Link EDU mini после прошивки загрузчика. Следующие шаги показывают, как настроить Atmel Studio для передачи выходных файлов в загрузчик через USB-соединение. Во время передачи файлов загрузчик прошивает память.
- Повторите шаги 1, 2 и 3, чтобы получить номер виртуального COM-порта USB из Диспетчера устройств Windows.
- Программа прошивки BOSSA для SAMD21 нужна для прошивки напрямую из Atmel Studio, в данном случае это установочный файл bossa-x64-1.9.1.msi. Загрузите и установите BOSSA отсюда: BOSSA download
- В Atmel Studio создайте новый проект исполняемого файла GCC C для SAMD21G18A.
- В качестве демонстрационной программы для main.c я использую эту простую программу Blink: Blink test
- Поскольку загрузчик Arduino ожидает, что приложение из среды IDE будет запускаться по адресу 0x2000, компоновщик Atmel Studio gcc должен быть настроен соответствующим образом.Выберите Project -> (имя вашего проекта) Properties -> Toolchain и добавьте строку: -Wl, –section-start = .text = 0x2000 в позицию, показанную ниже, и сохраните файл:
- Выберите Build -> Build Solution для сборки проекта
- Чтобы прошить SAMD21 с помощью программы из Atmel Studio, необходимо определить некоторые параметры для вызова установленной флеш-программы BOSSA из шага 11.
- В Atmel Studio выберите Инструменты -> Внешние инструменты:
- Выберите заголовок в окне настроек, я назвал его Samd21_prog.Установите команду: C: \ Program Files (x86) \ BOSSA \ bossac.exe, проверьте путь к установленному bossac.exe.
- В качестве аргументов вставьте следующие параметры для определения смещения адреса программы (для загрузки кода над адресным пространством загрузчика): COM-порт и имя файла .:
- Аргументы: –offset = 0x2000 -p COM4 -i -e -w -v -R «$ (ProjectDir) Debug \ $ (TargetName) .bin», НО измените COM4 на номер COM-порта, который вы получили ранее на шаге 4. Примечание — смещение ставится со знаком 2 минус.! Снимите флажок «Закрыть при выходе» и нажмите «Применить»:
- Теперь выберите Инструменты -> Внешние инструменты -> SAMD21G18_prog, чтобы прошить программу Blink.
- Если все работает нормально, в окне вывода Bossa будет отображаться:
- А на плате начинают мигать светодиоды TX_LED и RX_LED.