Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров.
Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QBS 1.14.
Кому эта тема интересна, добро пожаловать по кат.
Буквально на днях, тихо и незаметно, вышел релиз Qt Creator 4.11, в котором добавлены некоторые улучшения для работы с микроконтроллерами (в простонародье — «baremetal» устройствами). В этот релиз Qt Creator интегрирована сборочная система QBS 1.15 в которой также есть новые улучшения (ее еще не зарелизили).
Все эти улучшения доступны только при включенном плагине BareMetal, который активируется через меню «Help -> About Plugins -> Device Support -> BareMetal».
QBS будет неотъемлемой частью данного обзора, поэтому имеет смысл поговорить и об его улучшениях:
Текущий статус поддержки компиляторов можно посмотреть здесь, а текущий статус интеграции генераторов — здесь.
Чтобы посмотреть как это все работает, QBS предоставляет набор простейших примеров.
В следующих версиях планируется добавить архитектуры от Renesas и генераторы в IAR EW для этих архитектур (не знаю, успеется ли). А также, если очень повезет, то в Qt Creator будет интегрирован отладчик от Keil uVision.
На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.
Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QBS 1.14.
Кому эта тема интересна, добро пожаловать по кат.
Буквально на днях, тихо и незаметно, вышел релиз Qt Creator 4.11, в котором добавлены некоторые улучшения для работы с микроконтроллерами (в простонародье — «baremetal» устройствами). В этот релиз Qt Creator интегрирована сборочная система QBS 1.15 в которой также есть новые улучшения (ее еще не зарелизили).
Улучшения в Qt Creator
Все эти улучшения доступны только при включенном плагине BareMetal, который активируется через меню «Help -> About Plugins -> Device Support -> BareMetal».
- Добавлены новые архитектуры в компиляторы GCC, SDCC и IAR EW, основные сведения о которых приведены ниже в таблице:
Теперь эти новые компиляторы автоматически определяются на вкладке «Tools -> Options -> Kits -> Compilers -> Auto-detected».
Например, у меня это выглядит следующим образом:
В ОС Windows авто-определение компилятора GCC для архитектуры MSP430 не реализовано, т.к. данный набор предоставляется в виде простого архива, а не в виде инсталлятора.
Но никто не мешает добавить этот GCC компилятор (да и любой другой поддерживаемый) вручную, при этом, Qt Creator корректно определит ABI компилятора:
Примечание: И конечно же, у всех компиляторов будут автоматически определены директории с заголовками, пред-определенные макросы и прочее для корректной подсветки кода.
- По пожеланиям трудящихся была добавлена поддержка SVD файлов описания регистров периферии микроконтроллеров.
Примечание: Как я знаю, эта возможность доступна только для ARM-ов (хотя, могу ошибаться) и пока что носит экспериментальный характер.
Для использования этой возможности необходимо сначала в настройках устройства «Tools->Options->Devices->YourDevice» в поле «Peripheral description file» выбрать нужный SVD файл, соответствующий целевому микроконтроллеру:
Примечание: Эти файлы можно скачать как с сайта ARM, так и взять из директорий с установленными продуктами Keil MDK или IAR EW.
Далее, после запуска отладки нужно в меню «Window->Views» выбрать «Peripheral Registers». После чего откроется панель «Peripheral Registers» (аналогичная панели «Registers») в которой по клику правой клавиши мыши вызовется меню с перечнем групп регистров, которые необходимо отобразить:
Выбираем любую группу (например RCC) и, получаем список всех регистров из данной группы с их подробным описанием и значениями, которые можно читать/писать:
Примечание: На данный момент реализовано отображение регистров только одной любой выбранной группы.
Улучшения в QBS
QBS будет неотъемлемой частью данного обзора, поэтому имеет смысл поговорить и об его улучшениях:
- Добавлена поддержка этих новых компиляторов и реализована возможность автоматического определения установленных компиляторов и создания профилей.
Свойство qbs.architecture имеет следующие значения:
Имя архитектуры Значение свойства STM8 stm8 MSP430 msp430
- Добавлена поддержка генераторов в проекты Keil MDK и IAR EW для следующих архитектур и версий:
IDE Архитектура Генератор KEIL uVision 5.23 ARM keiluv5 KEIL uVision 5.23 MCS51 keiluv5 IAR EW 8.40.1 ARM iarew8 IAR EW 3.11.1 STM8 iarew3 IAR EW 10.10.1 MCS51 iarew10 IAR EW 7.12.4 MSP430 iarew7 IAR EW 7.20.1 AVR iarew7
Примечание: В таблице выше представлены версии продуктов с которыми шла разработка генераторов и более-менее проверялась работоспособность.
Таким образом, теперь можно этими генераторами создать нативный проект для желаемой целевой IDE. При этом, каждый генератор будет преобразовывать все компилятор-специфические флаги, пути, зависимоси, заданные в QBS проекте в соответствующие настройки целевого IDE проекта.
Если исходный QBS проект содержал несколько продуктов (например, приложения, библиотеки и пр.), то генератор создаст целевой «workspace» с вложенными под-проектами «project» для каждого целевого IDE.
Примечание: Сразу оговорюсь, что, как я знаю, IDE от KEIL или IAR EW не поддерживают отслеживание зависимостей (если я не прав — поправьте). Поэтому, например, если проект содержит приложение и зависимость в виде библиотеки, то пользователю нужно будет сначала собрать библиотеку, а потом уже само приложение.
Для генерации проектов необходимо иметь уже настроенные профили QBS с соответствующими компиляторами.
Примечание: Пока что без профилей не обойтись, т.к. генератор из профиля получает саму архитектуру, пути к пред-установленному компилятору (IDE) и прочее. Эти данные нужны для корректного поиска скриптов линковщика, путей к runtime библиотекам и прочих специфических вещей (там не простая логика).
Например, чтобы создать целевой проект для IAR EW и ARM микроконтроллера, достаточно выполнить следующую команду:
qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project/file> profile:<your/qbs/profile/for/arm>
Имена профилей можно получить используя, к примеру, GUI утилиту qbs-config-ui (или использовать консольный вариант).
Примечание: На данный момент, генераторы имеют экспериментальный статус. Возможно, в некоторых случаях (если исходный проект сложный) они будут генерировать некорректные целевые файлы проектов, или пропускать некоторые флаги и прочее. Сильно не ругайте, а создавайте баг-репорты в QBS трекере.
Текущий статус поддержки компиляторов можно посмотреть здесь, а текущий статус интеграции генераторов — здесь.
Чтобы посмотреть как это все работает, QBS предоставляет набор простейших примеров.
Что дальше
В следующих версиях планируется добавить архитектуры от Renesas и генераторы в IAR EW для этих архитектур (не знаю, успеется ли). А также, если очень повезет, то в Qt Creator будет интегрирован отладчик от Keil uVision.
На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.