2016-01-14 10 views
2

Atmel заявил в своем веб-сайте:Как Atmel Studio 7 компилирует и отлаживает код Arduino?

Atmel Studio 7 особенности бесшовной одним нажатием кнопки импорт проектов, созданных в среде разработки Arduino. Ваш эскиз, включая любые библиотеки, которые он ссылается, будет импортирован в Studio 7 в качестве проекта на C++. После импорта вы можете использовать все возможности Studio 7 для точной настройки и отладки вашего дизайна. Atmel Studio 7 полностью поддерживает мощный встроенный отладчик на плате Arduino Zero. Для других плат Arduino доступны экранирующие адаптеры, которые открывают разъемы отладки, или переключаются на одну из многих доступных плат Xplained-Mini/PRO, чтобы полностью использовать экосистему Atmel HW. Независимо от того, что вы выберете, вы наверняка сделаете что-то потрясающее.

Интересно, как это работает? Это просто плагин (визуальный микро), который означает, что нам еще нужно установить программное обеспечение Arduino? Или у них есть собственный компилятор и отладчик?

+0

Atmel Studio основан на изолированной оболочке VS, что означает «да», у них есть свой собственный компилятор, отладчик, intellisense и т. Д. – Cameron

+0

Вам не нужно устанавливать Arduino для использования плагина Visual Micro. Это необязательно. –

ответ

1

Чтобы завершить Danny_ds ответ:

"Стандартный" Atmel компилятор для Arduino (и 8-битный AVR) является теперешний avr-gcc, GCC, стоя на GNU Compiler Collection (так, бесплатное программное средство).

Это инструментарий, используемый Arduino IDE, а также Atmel Studio. Обратите внимание, что Atmel Studio настраивается, он может использовать другие инструментальные средства/компиляторы (кто-то сказал мне, что он существует как минимум 8 компиляторов AVR).

Чтобы понять, как импортирование sketche Arduino в Atmel Studio, возможно, лучше понять, что такое Arduino является:

  • А «макетный» работает на чипе ATmega328
  • Библиотеки (API импортируется при #include <Arduino.h> ранее Program.h IIRC)
  • Один IDE, что делать все редактора и "Makefile" работа

Давайте вытолкнуть стек:

Во-первых, вы можете уничтожить среду Arduino, используя собственный редактор и make-файлы. См. Arduino Makefile on github для удобства переключения на это. Выполняя это, возможно, вам придется добавить включение Arduino.h в свой скетч. Но вы полностью контролируете обработку исходного дерева. Это была моя мотивация, когда выходила из Arduino IDE раньше, потому что к тому времени было невозможно использовать 2 библиотеки в одном и том же эскизе, что и Arduino-Makefile.

Во-вторых, если вы не планируете использовать Serial класс (вождение/интерфейс USB UART для консольного текстового общения с Дуино), он приходит соблазн удалить зависимости ... Я сделал попытку , и я прихожу к выводу, что функции перезаписи, такие как setMode(), digitalRead() и писать, и т. д. - это просто . Очевидно: просто откройте PDF-таблицу рядом с кодом и установите бит соответствующим образом.

ADC-конвертер, управление таймером/счетчиком, чтение/запись eeprom и даже подключение UART-соединения, все более сложны, поскольку они подразумевают непосредственное управление регистрами ввода-вывода AVR и понимание подсистемы, с которой вы взаимодействуете. Но не невозможно !!

Кроме того, более чем вероятно, что (бесплатные) библиотеки доступны, кроме Arduino, для управления этими заданиями.

После этого шага ваше исходное дерево может быть импортировано AS IT IS в Studio и (если ваш компилятор по-прежнему установлен в GCC, а Atmel Studio знает о ваших зависимостях), он будет легко компилироваться.

Итак, Atmel Studio должна только импортировать библиотеку Arduino в проект (и, возможно, добавить заголовок, как мы должны сделать вручную), чтобы скомпилировать его как родной проект.

УКАЗАНИЕ, что вставка некоторых существующих файлов и особенно целых существующих каталогов - это боль в заднице с Studio.

+0

Если вы AVR Freak, я думаю, вы wannabe, я только что начал блог и репо о том, что контекст потока переключается на 8-битный AVR: https://skz81.wordpress.com/ и ищите меня на узле ... Увидимся !! :) –

+0

как насчет ARM-чипа? – inyoot

+0

Как насчет ARM ?? Это совершенно другая архитектура микросхем. Тогда совершенно другой вопрос. Если вы возражаете против моей ссылки, (темы), ответ будет таким же, у ARM и AVR очень мало общего. –

1

Код Arduino - это просто C++-код (включая некоторые библиотеки C++).

Разница в том, что в IDE Arduino вы не видите весь код. Например, main()скрыт и скомпилирован за кулисами.

В эскизе Arduino, только setup() и loop() видны, но те, которые вызываются из скрытого main() (который вызывает loop() неоднократно).

Таким образом, компилятор Atmel C++ не должен создавать компиляцию эскиза, созданного в среде Arduino, поскольку он уже является полным проектом C++.