Qt for MCUs 1.7

Qt for MCUs 1.7

官网资料 https://doc.qt.io/QtForMCUs/index.html

一、概述

Qt Quick Ultralite概述

Qt Quick Ultralite图形框架提供了丰富的QML API集,用于构建流畅的GUI和渲染引擎。它还提供了一组代码生成器和图形运行时,用于呈现基于Qt Quick的图形用户界面(GUI)。

该框架的设计和开发旨在帮助为由微控制器单元(MCU)供电的设备创建丰富的用户界面。开发该应用程序是为了使您的应用程序在可用资源的情况下达到最佳性能。它利用可用的硬件加速来进行图形操作,并意识到MCU平台上的有限资源,例如内存占用量和CPU处理周期。

二、受支持的目标板和开发主机

恩智浦支持的主板

开发板 MCU 编译器 操作系统)
NXP MIMXRT1050-EVKB MIMXRT1052DVL6B 适用于Arm V8.50的GNU Arm 8,IAR生成工具 裸机,FreeRTOS(技术预览)
NXP MIMXRT1060-EVK MIMXRT1060DVL6A 适用于Arm V8.50的GNU Arm 8,IAR生成工具 裸机
NXP MIMXRT1064-EVK MIMXRT1064DVL6A 适用于Arm V8.50的GNU Arm 8,IAR生成工具 裸机,FreeRTOS(技术预览)
NXP MIMXRT1170-EVK MIMXRT1176DVMAA GNU Arm 8 FreeRTOS(技术预览)

开发平台

Windows 10 64位

三、Qt Quick Ultralite平台移植指南

官网资料 https://doc.qt.io/QtForMCUs/platform-porting-guide-introduction.html

四、以NXP i.MX RT1050为例的开发环境搭建

先决条件

  • Qt for MCUs SDK

  • Qt Creator v4.12.4 or newer

  • CMake 3.15 or newer

  • Ninja 1.10.0 or newer

    注意:Ninja是一个可选的构建工具,可以用JOM或NMake等其他工具替换。使用Qt Creator时不需要。

  • ARM Toolchain 8-2019-q3-update or IAR Build Tools for Arm V8.50, depending on which toolchain you are using

  • EVKB-IMXRT1050 SDK 2.7.0 or newer

  • NXP MCUXpresso IDE

注意: MCUXpresso IDE提供了用于刷新和板上调试的工具。

安装链接

官网下载安装器 [https://my.visualstudio.com/Downloads?q=Visual Studio 2017](https://my.visualstudio.com/Downloads?q=Visual Studio 2017)

4.1 官网下载

购买qt后,登陆 https://account.qt.io/downloads;

在这里插入图片描述

下载得到在线安装包 qt-unified-windows-x86-4.0.1-1-online.exe

4.2 在线安装

运行安装包,安装提示一步步安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装后文件目录
在这里插入图片描述

4.3 命令行编译demo win版本

  • 从命令行进入目录 C:\Custom\Qt\QtMCUs\1.7.0\demos\thermo
  • 设置临时环境变量
SET PATH=%PATH%;C:/Custom/Qt/Tools/CMake_64/bin;
SET Qul_DIR=C:/Custom/Qt/QtMCUs/1.7.0

构建(假设你已经安装vs)

cd 项目目录
mkdir build
cd build
cmake .. -G "NMake Makefiles JOM" -DCMAKE_BUILD_TYPE=Release -DQUL_GENERATORS=%Qul_DIR%/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM="Qt"
cmake --build .

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.4 命令行编译mimxrt1050版本

设置要构建的平台

-DQUL_PLATFORM = mimxrt1050-evk-baremetal

armgcc工具链

-DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%\lib\cmake\Qul\toolchain\armgcc.cmake

Qul_DIR 是 Qt for MCUs SDK 安装目录

该平台支持的颜色深度为16位

-DQUL_COLOR_DEPTH = 16

构建命令

cd 项目目录
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal
cmake --build .

得到 build/MinSizeRel/thermo_small.elf

调试

工具MCUXpresso IDE,连接远程端口

五、从源代码构建Qt Quick Ultralite

先决条件

  • Qt for MCUs SDK
  • Qt Creator v4.12.4 or newer
  • CMake 3.15 or newer
  • Ninja 1.10.0 or newer

从修改后的源代码构建Qt Quick Ultralite

cd %Qul_DIR%
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=..\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=MIMXRT1050-EVK-baremetal -DQUL_BUILD_DEMOS=off -DQUL_BUILD_EXAMPLES=off -DQUL_BUILD_FRAMEWORK=off
cmake --build .
mkdir some\path\custom_builds\qul
cd some\path\custom_builds\qul

mkdir qul-build
cd qul-build

set QUL_SDK_PATH=<PATH_TO_INSTALLED_QT_SDK>\QtMCUs\<VERSION>

cmake %QUL_SDK_PATH% -G "Ninja" -DCMAKE_INSTALL_PREFIX=some\path\custom_builds\qul -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=%QUL_SDK_PATH%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_PLATFORM=<PLATFORM_NAME> -DQUL_BUILD_TESTS=OFF -DQUL_BUILD_DEMOS=OFF -DQUL_BUILD_EXAMPLES=OFF -DQUL_GENERATORS=%QUL_SDK_PATH%\lib\cmake\Qul\QulGenerators.cmake

ninja install

六、 使用自定义SDK构建 windows版

设置环境变量(临时)

SET Qul_DIR=C:/Custom/Qt/QtMCUs/1.7.0

构建

cd 项目目录
mkdir build
cd build
cmake .. -G "NMake Makefiles JOM" -DCMAKE_BUILD_TYPE=Release -DQUL_GENERATORS=%Qul_DIR%/lib/cmake/Qul/QulGenerators.cmake -DQUL_PLATFORM="Qt"  -DCMAKE_C_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" -DCMAKE_MAKE_PROGRAM=C:/Custom/Qt/Tools/QtCreator/bin/jom.exe -DOS=Qt -DUSE_PLATFORM_WIN32=ON
cmake --build .

七、 构建 mimxrt1050 版

设置环境变量(临时)

SET Qul_DIR=C:/Custom/Qt/QtMCUs/1.7.0
SET IMXRT1050_SDK_DIR=C:/Custom/Qt/Tools/QtMCUs/NXP/SDK_2.8.2_EVKB-IMXRT1050
SET IMXRT1050_FREERTOS_DIR=C:/Custom/Qt/Tools/QtMCUs/NXP/SDK_2.8.2_EVKB-IMXRT1050/rtos/freertos/freertos_kernel
SET MCUXpressoIDE_PATH=C:/nxp/MCUXpressoIDE_11.2.0_4120/ide
SET COMPILER_FOLDER_NAME=armgcc
SET ARMGCC_DIR="C:/Program Files (x86)/GNU Tools ARM Embedded/8 2019-q3-update"

构建

cd 项目目录
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQUL_PLATFORM=MIMXRT1050-EVK-freertos -DQUL_COLOR_DEPTH=16 -DQUL_COMPILER_NAME=armgcc -DQUL_GENERATORS=%Qul_DIR%/lib/cmake/Qul/QulGenerators.cmake -DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%/lib/cmake/Qul/toolchain/armgcc.cmake -DOS=FreeRTOS
cmake --build .

八、 构建 mimxrt1170 版

设置环境变量(临时)

SET Qul_DIR=C:/Custom/Qt/QtMCUs/Qul_dev
SET EVK_MIMXRT1170_SDK_PATH=C:/Custom/Qt/Tools/QtMCUs/NXP/SDK_2.8.0_MIMXRT1170_EVK-EAR3
SET EVK_MIMXRT1170_FREERTOS_PATH=C:/Custom/Qt/Tools/QtMCUs/NXP/SDK_2.8.0_MIMXRT1170_EVK-EAR3/rtos/freertos/freertos_kernel
SET MCUXpressoIDE_PATH=C:/nxp/MCUXpressoIDE_11.2.0_4120/ide
SET COMPILER_FOLDER_NAME=armgcc
SET ARMGCC_DIR="C:/Program Files (x86)/GNU Tools ARM Embedded/8 2019-q3-update"

构建

cd 项目目录
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQUL_PLATFORM=MIMXRT1170-EVK-freertos -DQUL_COLOR_DEPTH=32 -DQUL_COMPILER_NAME=armgcc -DQUL_GENERATORS=%Qul_DIR%/lib/cmake/Qul/QulGenerators.cmake -DCMAKE_TOOLCHAIN_FILE=%Qul_DIR%/lib/cmake/Qul/toolchain/armgcc.cmake -DOS=FreeRTOS -DQUL_DEFAULT_SCREEN_WIDTH=1920 -DQUL_DEFAULT_SCREEN_HEIGHT=720
cmake --build .

QUL_PLATFORM可能的值

  • MIMXRT1050-EVKB-baremetal
  • MIMXRT1050-EVKB-freertos
  • MIMXRT1060-EVK-baremetal
  • MIMXRT1064-EVK-baremetal
  • MIMXRT1064-EVK-freertos
  • MIMXRT1170-EVK-freertos

九、 烧写到板子上

官网资料 https://doc.qt.io/QtForMCUs/qtul-flashinginstructions-nxp.html

命令行方式

首先确保安装 MCUXpresso IDE,这个在安装qtformcu时候可以从第三方工具中安装。

板子SW1设置0001 SDP MODE

设置Redlink 工具的环境变量

set REDLINK=%MCUXpressoIDE_PATH%/binaries/crt_emu_cm_redlink.exe

用USB线连接单板,打开终端窗口

%REDLINK% --flash-load-exec "C:/Custom/Qt/QtMCUs/Qul_dev/demos/thermo/build2/MinSizeRel/motor_cluster.elf" -p MIMXRT1176xxxxx --ConnectScript RT1170_connect.scp --flash-driver= -x %Qul_DIR%/platform/boards/nxp/mimxrt1170-evk-freertos/cmake

烧写完板子SW1设置0010 ,正常上电启动

刷新固件方式

闪烁和调试NXP单板需要有DAPLINK固件。如果固件刷新不正确,工具可能无法与设备建立连接。

NXP提供下载固件。在下载页面,选择单板类型,下载“Default firmware application, DAPLink”。

安装DAPLink后,按照以下说明来刷新固件:

  • 关闭单板电源
  • 上电时,长按SW3
  • 连接一根USB线到DAPLink USB端口,它将显示为一个名为“MAINTENANCE”的新磁盘。现在,SW3可以释放了。
  • 将DAP LINK FW二进制文件拷贝到维护磁盘上,用于编写新的DAP LINK固件。
  • 闪光完成后,驱动器被标记为“RT1170-EVK”。

指定程序生成bin

修改文件 "C:\Custom\Qt\QtMCUs\Qul_dev\lib\cmake\Qul\toolchain\armgcc.cmake"

macro(add_convert_elf_to_hex name)
    set_target_properties("${name}" PROPERTIES SUFFIX ".elf")
    #add_custom_command(TARGET "${name}" POST_BUILD COMMAND ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objcopy${TOOLCHAIN_EXT}
    #-O ihex "$<TARGET_FILE:${name}>" "$<TARGET_FILE_DIR:${name}>/${name}.hex")
	
	add_custom_command(TARGET "${name}" POST_BUILD COMMAND ${TOOLCHAIN_BIN_DIR}/${TARGET_TRIPLET}-objcopy${TOOLCHAIN_EXT}
    -O binary "$<TARGET_FILE:${name}>" "$<TARGET_FILE_DIR:${name}>/${name}.bin")
endmacro()
posted @ 2021-11-01 11:53  踏月清风  阅读(472)  评论(0)    收藏  举报