[Из песочницы] Шаблон для быстрого старта на Arduino Due в QtCreator

Вот уже 3-й год как я нарадоваться не могу на Qt. В нем нахожу только достоинства. Он позволяет почти все. А что не позволяет, но очень надо — можно добавить и пользоваться. Так получилось и в этот раз.

image

ПредысторияПочему-то у меня к Arduino было отношение как к игрушке. До тех пор, пока не набрел на Arduino Due. Зацепила строчка в описании к модулю, что он построен на контроллере ATSAM3×8E (ядро Cortex M3). Дело в том, что с данным контроллером (вернее, с его младшей версией) я знаком не понаслышке.

Второе — и это заставило его уже купить — это цена. У меня есть опыт разработки железа на похожем контроллере (разрабатывал автомобильный трекер), и этот опыт настойчиво зашептал, что цена за модуль с доставкой в 15$ при стоимости только контроллера на Диджикее в 12$ — это очень выгодно. Бонусом шел интегрированный источник питания c диапазоном входного напряжения от 18В до 7В, 2 USB (Programming и Native).

Постановка задачи Модуль пришел достаточно быстро. Дальше начались танцы.

Дело в том, что в бытность свою инженером-конструктором основной IDE для меня был IAR, а системой — Windows. Сейчас же основная работа связана с написанием приложений под Linux. То есть, Qt и Ubuntu соответственно. Пойдя по пути наименьшего сопротивления, установил IDE от Arduino. Запустил и сразу понял, что это не для меня. Общее впечатление — блокнот.

Решил разработку как-то вести в Qt Creator’e. Исследовав интернет на тему «может это есть и можно применить у себя», понял: очень много информации касательно Arduino написано для AVR-based модулей. По Arduino Due информации кот наплакал. А нужной и совсем нет. Это одна из причин, по которым я пишу эту статью. Разочаровавшись, стал копать в сторону связки Qt — Cortex-M3/M4. Взяв на вооружение статьи «Программируем микроконтроллеры в QtCreator» и «Программируем микроконтроллеры stm32 при помощи QtCreator». Стал творить. Скажу сразу — статьи задали только направление.

Как и любой программист — я немного ленив. Поэтому решил сделать шаблон для Qt, чтобы всегда под рукой был.

Решение Подготовка Для начала установим Qt Creator и Arduino IDE. Как ставить — информации море. Останавливаться не буду.

В Arduino IDE устанавливаем поддержку модулей Arduino Due. В дальнейшем я буду вести повествование для Linux. Sapienti sat, как говорится. Почему-то она (поддержка) устанавливается в скрытую папку [home_path]/.arduino15. Исправляем этот недочет — копируем (или переносим — кому как нравится) папку [home_path]/.arduino15/packages/arduino/hardware/sam/1.6.4 в папку [arduino_path]/hardware/sam, папку [home_path]/.arduino15/packages/arduino/tools в папку [arduino_path]/hardware/tools. В папке [arduino_path]/hardware/arduino/sam/cores/arduino удаляем (переименовываем) файл main.cpp. Если необходимо, скачайте порт FreeRTOS и положите в папку [arduino_path]/libraries. Далее, стягиваем с гитхаба шаблоны и копируем в папку [qt_path]/Tools/QtCreator/share/qtcreator/templates/wizards. На этом подготовка закончена.

Использование

Присоединяем Arduino Due через Programming Port (через Native Port надо будет вручную стирать и сбрасывать чип). Запускаем QtCreator. Жмем «Новый проект» и наблюдаем слева новый пункт меню «Arduino ARM» (см. верхний скрин). Выбираем необходимый пункт и жмем «Выбрать…»:

image

Далее:

image

Здесь прописываем пути:

image

Получаем проект:

image

Открываем qbs-файл и проверяем пути. В принципе, если все было сделано так, как говорилось на предыдущих этапах — все должно быть в порядке. Но лучше перепроверить:

0ca44786e4ed4a599e5b5e6b852aff6b.png

Далее идем в «Проекты» вкладка «Запуск» текущего комплекта:

c5bfb23e9df6414b9cb46572e89b46d1.png

В этапе «Установка» очищаем текущий метод и жмем «Установка, добавить этап». Выбираем «Особый» и пишем в строке «Команда» stty. В строке «Параметры» -F your_port speed 1200 cs8 -cstopb -parenb, где вместо your_port подставляем свой порт.

Переходим к этапу «Запуск». В строке «Команда» выбираем программу bossac. В строке «Параметры» -U false -e -w -v -b your_progect_name.bin -R, где вместо your_progect_name подставляем имя проекта.

На этом подготовка к использованию завершена. Можно жать на «Запустить»:

495a2f2f50a1430da0f173d4a323a0b3.png640984abf6a1472fb33702e26334c5eb.png

И наслаждаться мигающим светодиодом.

© Habrahabr.ru