Обзор возможностей Qt Creator 4.13 и QBS 1.17 для программирования микроконтроллеров
Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров.
Ранее я уже писал про улучшения в предыдущих версиях:
Кому эта тема интересна, добро пожаловать по кат.
Буквально сегодня, тихо и незаметно, вышел релиз Qt Creator 4.13, в котором добавлены некоторые улучшения для работы с микроконтроллерами (в простонародье — «baremetal» устройствами). В этот релиз Qt Creator интегрирована сборочная система QBS 1.17 в которой также есть новые улучшения.
Улучшения в Qt Creator
- Добавлена поддержка новых архитектур и компиляторов
Все новые архитектуры и компиляторы приведены ниже в таблице в разделе, посвященному QBS.
Примечание: Их количество совпадает для QBS и QtC для каждой новой версии.
- Добавлена поддержка отладчика J-Link в интеграцию Keil MDK
Теперь для работы с отладчиком из Keil MDK можно выбрать не только такие поставщики как Simulator и St-Link, но и новый поставщик — J-Link.
Для этого необходимо как обычно создать новое 'bare-metal' устройство (не буду писать как это делается), перейти на страницу «Tools → Options → Devices → BareMetal» и добавить новый поставщик «uVision JLink»:
Далее необходимо в поле «Tools file path» указать путь к файлу «tools.ini», который обычно находится в корневой директории с установленным Keil MDK, для того чтобы активировать возможность выбора целевого устройства и драйвера отладчика:
Примечание: Выбор пути к файлу 'tools.ini' является обязательным шагом, т.к. этот файл содержит всю конфигурацию Keil MDK.
Теперь можно выбрать целевой драйвер отладчика (у нас он один для выбранного провайдера — это «J-Link/J-Trace Cortex»):
Всё, теперь можно выбирать целевое устройство и отлаживать его.
- Добавлена поддержка новых микроконтроллеров от NXP и Nordic Semiconductor в интеграцию Keil MDK
Теперь можно работать не только с ARM микроконтроллерами от STMicroelectroncs, но и с микроконтролерами S32 от NXP и всей линейкой микроконтроллеров от Nordic Semiconductor.
Все доступные производители и типы целевых устройств отображаются в окне выбора целевого устройства:
Остается только выбрать желаемое целевое устройство и отлаживать его.
Примечание: Для этого необходимо заранее установить соответствующие пакеты «Software Device Pack» в Keil MDK.
- Добавлено отображение периферийных регистров в интеграцию Keil MDK
Теперь можно посмотреть и отредактировать содержимое периферийных регистров микроконтроллера. Для настройки их отображения ничего особенного не требуется, достаточно только выбрать целевое устройство. При этом, автоматически выбирается нужный файл описания периферии, путь к которому находится в конфигурации целевого устройства:
Примечание: Также есть возможность выбрать какой-либо иной файл описания периферии.
Чтобы просмотреть содержимое регистров, необходимо запустить отладку, открыть окно периферийных регистров «View → Views → Peripheral Registers»:
После этого в правом окне отобразится пустая вкладка периферийных регистров:
Теперь можно выбрать желаемую группу регистров из всех доступных, просто кликнув правой клавишей мыши по пустому содержимому вкладки и в меню «View Groups» выбрать группу, например «RCC»:
в которой отобразятся все имеющиеся регистры, значения которых (помеченные как RW) можно будет поменять.
Также исправлена работа с точками останова при использовании отладчика от Keil MDK.
Улучшения в QBS
Добавлена поддержка и авто-определение новых архитектур и компиляторов.
Свойство qbs.architecture имеет следующие новые значения:
Также текущая версия QBS содержит много исправлений и улучшений (наконец-таки создали минимальный докер-контейнер с CI для проведения авто-тестов для разных компиляторов и архитектур для bare-metal).
Что дальше
Для QtC и отладчика Keil MDK планируется добавить фичу отображения и редактирования памяти (она сейчас там отключена). Также, возможно, добавится и новый поставщик (отладчик) от Texas Instruments.
Для QBS и QtC планируется добавление новых компиляторов и архитектур.
На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.