Здравствуйте, коллеги-железопрограммисты и все, кто им сочувствует. Хотелось бы продолжить обзор возможностей Qt Creator IDE в связке со сборочной системой QBS в плане программирования микроконтроллеров.
Ранее я писал об улучшениях в предыдущих версиях QtC 4.10 и QBS 1.14 .
Всем, кому интересна данная тема, милости просим под кат. Буквально на днях тихо и незаметно вышел релиз Qt Создатель 4.11 , в котором добавлены некоторые улучшения для работы с микроконтроллерами (в просторечии — «голометаллическими» устройствами).
В этом выпуске Qt Creator интегрирована система сборки.
КБС 1.15 который также имеет новые улучшения (он еще не выпущен).
Улучшения в Qt Creator
Все эти улучшения доступны только при включенном плагине BareMetal, который активируется через меню «Справка -> О плагинах -> Поддержка устройств -> BareMetal».
- В компиляторы GCC, SDCC и IAR EW добавлены новые архитектуры, основная информация о которых приведена в таблице ниже:
Компилятор Поддерживаемые архитектуры МАР РЭБ СТМ8, МСП430 GCC МСП430 СДКК СТМ8 Например, для меня это выглядит так:
В ОС Windows не реализовано автоопределение компилятора GCC для архитектуры MSP430, т.к.этот набор предоставляется в виде простого архива, а не в виде установщика.
Но никто не мешает добавить этот компилятор GCC (и любой другой поддерживаемый) вручную, и Qt Creator правильно определит ABI компилятора:
Примечание.И, конечно же, все компиляторы автоматически определяют каталоги с заголовками, предопределенными макросами и т. д. для корректной подсветки кода.
- По желанию рабочие поддержка была добавлена СВД файлы, описывающие периферийные регистры микроконтроллера.
Примечание.
Насколько мне известно, эта функция доступна только для ARM (хотя я могу ошибаться) и пока находится в стадии эксперимента.
Чтобы использовать эту возможность, необходимо сначала в настройках устройства «Инструменты-> Параметры-> Устройства-> ВашеУстройство» в поле «Файл описания периферии» выбрать нужный SVD-файл, соответствующий целевому микроконтроллеру:
Примечание.Эти файлы можно загрузить либо с сайта ARM, либо взять из каталогов с установленными продуктами Keil MDK или IAR EW. Далее, после запуска отладки, необходимо в меню «Окно-> Вид» выбрать «Регистры периферии».
После чего откроется панель «Регистры периферии» (аналогично панели «Регистры»), в которой по клику правой кнопкой мыши будет вызвано меню со списком групп регистров, которые необходимо отобразить:
Выбираем любую группу (например RCC) и получаем список всех регистров этой группы с их подробным описанием и значениями, которые можно читать/записывать:
Примечание: На данный момент отображаются регистры только одной выбранной группы.
Улучшения в QBS
QBS станет неотъемлемой частью данного обзора, поэтому имеет смысл рассказать о его улучшениях:- Добавлена поддержка этих новых компиляторов и реализована возможность автоматического обнаружения установленных компиляторов и создания профилей.
Свойство qbs.architecture имеет следующие значения:
Название архитектуры Стоимость имущества СТМ8 стм8 МСП430 msp430 - В проекты Keil MDK и IAR EW добавлена поддержка генераторов для следующих архитектур и версий:
IDE Архитектура Генератор КЕЙЛ uVision 5.23 РУКА кейлув5 КЕЙЛ uVision 5.23 МКС51 кейлув5 ИАР РЭБ 8.40.1 РУКА iarew8 МАР РЭБ 3.11.1 СТМ8 iarew3 ИАР РЭБ 10.10.1 МКС51 iarew10 ИАР РЭБ 7.12.4 МСП430 iarew7 ИАР РЭБ 7.20.1 АВР iarew7 В таблице выше показаны версии продуктов, с которыми разрабатывались генераторы и в той или иной степени проверялась их работоспособность.
Таким образом, теперь вы можете использовать эти генераторы для создания собственного проекта для желаемой целевой IDE. В этом случае каждый генератор преобразует все специфичные для компилятора флаги, пути и зависимости, указанные в проекте QBS, в соответствующие настройки целевого проекта IDE. Если исходный проект QBS содержал несколько продуктов (например, приложения, библиотеки и т. д.), то генератор создаст целевую «рабочую область» с вложенными подпроектами «проект» для каждой целевой IDE. Примечание: Сразу оговорюсь, насколько мне известно, IDE от KEIL или IAR EW не поддерживают отслеживание зависимостей (поправьте меня, если я ошибаюсь).
Поэтому, например, если проект содержит приложение и зависимость в виде библиотеки, то пользователю нужно будет сначала собрать библиотеку, а затем само приложение.
Для создания проектов у вас уже должны быть настроены профили QBS с соответствующими компиляторами.
Примечание: Без профилей пока не обойтись, потому что.
генератор из профиля получает саму архитектуру, пути к предустановленному компилятору (IDE) и т.д. Эти данные нужны для корректного поиска скриптов компоновщика , пути к рантайм-библиотекам и прочим специфическим вещам (там не простая логика).
Например, чтобы создать целевой проект для микроконтроллера IAR EW и ARM, просто выполните следующую команду:
qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project/file> profile:<your/qbs/profile/for/arm>
qbs-config-ui (или используйте опцию консоли).
Примечание: На данный момент генераторы имеют статус экспериментальных.
Возможно, в некоторых случаях (если исходный проект сложный) будут генерировать неверные файлы целевого проекта, или пропускать какие-то флаги и т.п.
Не ругайте сильно, а создавайте отчеты об ошибках в трекере QBS.
Чтобы увидеть, как все это работает, QBS предоставляет набор простых Примеры .
Что дальше
В будущих версиях планируется добавить архитектуры из Ренесас и генераторы в IAR EW для этих архитектур (не знаю, будет ли это сделано в срок).А еще, если очень повезет, в Qt Creator будет интегрирован отладчик от Keil uVision. На этой ноте я заканчиваю свой рассказ, спасибо всем, кто обратил внимание на этот обзор.
Теги: #Программирование микроконтроллеров #Qt #qtcreator #baremetal #qbs
-
Инструменты Сетевого Мониторинга
19 Oct, 24 -
Начало Работы В Интернете
19 Oct, 24 -
Спамеры Объявили Третью Мировую Войну
19 Oct, 24 -
«Ведомости» Становятся Бесплатными
19 Oct, 24