Обзор возможностей 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 имеет следующие новые значения:
Компилятор | Имя архитектуры | Значение свойства |
---|---|---|
Keil C251 | 80251 (aka MCS251) | mcs251 |
Keil ARMCLANG | ARM | arm |
Keil C166 | C16x, CX16x | c166 |
IAR | AVR32 | avr32 |
IAR | SuperH | sh |
IAR | RISC-V | riscv |
IAR | ColdFire (aka M68K) | m68k |
IAR | Renesas M32C | m32c |
IAR | Renesas R32C | r32c |
IAR | Renesas M16C/M8C | r16c |
IAR | National Semiconductor CR16/M8C | cr16 |
GCC | Renesas V850 | v850 |
GCC | Renesas M32C | m32c |
GCC | Renesas M32R | m32r |
GCC | Renesas RX | rx |
GCC | RISC-V | riscv |
GCC | XTENSA (ESP8266/32) | xtensa |
GCC | ColdFire (aka M68K) | m68k |
GCC | National Semiconductor CR16/M8C | cr16 |
GCC | SuperH | sh |
Также текущая версия QBS содержит много исправлений и улучшений (наконец-таки создали минимальный докер-контейнер с CI для проведения авто-тестов для разных компиляторов и архитектур для bare-metal).
Что дальше
Для QtC и отладчика Keil MDK планируется добавить фичу отображения и редактирования памяти (она сейчас там отключена). Также, возможно, добавится и новый поставщик (отладчик) от Texas Instruments.
Для QBS и QtC планируется добавление новых компиляторов и архитектур.
На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.