суббота, 21 марта 2015 г.

Arduino в Atmel Studio


В стандартоной среде разработки для Arduino не хватает таких прелестей как атодополнение и т.д. Решить этот вопрос можно посредством Atmel Studio.

Шаг 1
Качаем и устанавливаем Atmel Studio 6 с официального сайта Atmel бесплатно.

Шаг 2.Компилируем ядро Arduino.
-открываем Arduino IDE, выбираем необходимый контроллер.
-производим следующие настройки: (File -> Preferences поставить галку "Show verbose output during compilation").
-компилируем программу, например тестовый Blink
-после компиляции в консоли будет чтото вроде: C:UsersxxxxxxxAppDataLocalTempbuild3173545040878149377.tmpBlink.cpp.hex
-копируем ту часть, которую я выделил синим и переходим в эту папку.

Не закрываем Arduino IDE чтобы не удалить временные файлы.

Шаг 3. Создаем библиотеку Arduino в Atmel Studio 6

Импортируем ядро линковщика:
-открываем рабочую директорию Atmel Studio 6 (по умаолчанию Documents/Atmel Studio)
-создаем новую папку и называем ее например ArduinoCore
-возвращаемся в временную папку Arduino и ищем core.a.
-копируем "core.a" в вашу ArduinoCore папку
-переименовуем файл в "libcore.a".
-Закрываем Arduino IDE

Импортируем хидеры библиотек:
-переходим в папку установки Arduino IDE и ищем hardware/arduino/cores/arduino
-выбираем все и копируем в вашу ArduinoCore папку
-в ArduinoCore папке удаляем все .с и .cpp файлы. Оставляем только хидеры

Импортируем конфигурацию пинов Arduino.
-переходим в папку установки Arduino IDE и ищем hardware/arduino
-там есть текстовый файл "boards.txt". Вы можете посмотреть там необходимый вариант для своей платы.
-теперь выбираем папку variants, открываем папку подходящую для нашего варианта и копируем pins_arduino.h хидер.
-вставляем в вашу ArduinoCore папку


Шаг 4: Конфигурируем Ваш проект в Atmel Studio 6

Создаем Ваш проект
-открываем  Atmel Studio 6
-переходим File -> New -> Project... и выбирам GCC C++ executable project.
-называем его, например TutorialArduino и жмем ОК
-выбирам Ваш чип.

Конфигурируем Ваш проект
-идем в Project -> TutorialArduino Properties...
-выбираем вкладку Toolchain 


AVR/GNU C Compiler


  • Directories

Жмем add, снимаем галку с "Relative Path", ищем Вашу ArduinoCore папку и жмем OK



  • Optimization 

    Optimization level: Optimize for size (-Os) (иначе функции delay  будут работать некорректно) 
    Отмечаем Prepare functions for garbage collection

AVR/GNU C++ Compiler

  • Directories 

    Жмем add, убираем галку "Relative Path", ищем Вашу ArduinoCore папку и жмем OK
  • Optimization 

    Optimization level: Optimize for size (-Os) (иначе функции delay  будут работать некорректно) 
    Отмечаем Prepare functions for garbage collection

AVR/GNU C++ Linker

  • Libraries -> Libraries -> add:  вводим libcore
Libraries -> Library search path -> add: снимаем галку "Relative Path", ищем Вашу ArduinoCore папку и жмем OK.

Optimization: выбираем Garbage collect unused sections.


Сохраняем проект и возвращаемся к TutorialArduino.cpp файлу


Шаг 5: Пишем Arduino код в Atmel Studio 6!
Все настроено! 
Вставляем следующий текст:
  • #define F_CPU 16000000
  • #define ARDUINO 100
  • #include "Arduino.h"
  • void setup();
  • void loop();

Дальше работаем как в обычном Arduino IDE.
Про подключение других библиотек в одной из следующих статей.


Комментариев нет:

Отправить комментарий