Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров.

Ранее я уже писал про улучшения в предыдущих версиях:


Кому эта тема интересна, добро пожаловать по кат.

Буквально сегодня, тихо и незаметно, вышел релиз Qt Creator 4.13, в котором добавлены некоторые улучшения для работы с микроконтроллерами (в простонародье — «baremetal» устройствами). В этот релиз Qt Creator интегрирована сборочная система QBS 1.17 в которой также есть новые улучшения.

Улучшения в Qt Creator


  1. Добавлена поддержка новых архитектур и компиляторов

    Все новые архитектуры и компиляторы приведены ниже в таблице в разделе, посвященному QBS.

    Примечание: Их количество совпадает для QBS и QtC для каждой новой версии.
  2. Добавлена поддержка отладчика 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»):



    Всё, теперь можно выбирать целевое устройство и отлаживать его.
  3. Добавлена поддержка новых микроконтроллеров от NXP и Nordic Semiconductor в интеграцию Keil MDK

    Теперь можно работать не только с ARM микроконтроллерами от STMicroelectroncs, но и с микроконтролерами S32 от NXP и всей линейкой микроконтроллеров от Nordic Semiconductor.

    Все доступные производители и типы целевых устройств отображаются в окне выбора целевого устройства:



    Остается только выбрать желаемое целевое устройство и отлаживать его.

    Примечание: Для этого необходимо заранее установить соответствующие пакеты «Software Device Pack» в Keil MDK.

  4. Добавлено отображение периферийных регистров в интеграцию 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 планируется добавление новых компиляторов и архитектур.

На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.