创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Qt工程编译、GPU核心使用说明

博主:旭日财富者旭日财富者 2025-10-22 3932

前 言

为助力开发者高效开展创龙科技研发评估板的 Qt 应用开发,本文聚焦 Qt 工程编译与 GPU 核心应用,详解两种编译方式的配置与操作步骤,说明 Qt 程序在评估板的运行与自启动方法,同时通过案例演示 GPU 图形渲染功能,帮助开发者快速掌握相关技术要点,为评估板 Qt 应用开发与性能优化奠定基础。

本文档主要说明如何将已有Qt工程进行编译,生成可在评估板上正常运行的ARM端Qt程序镜像。

Qt开发环境主要包括Qt Creator工具、X86端Qt环境、ARM端Qt环境、交叉编译工具链等。当用户使用Qt Creator工具和X86端Qt环境编写并编译Qt工程后,生成的Qt程序镜像仅可在X86端运行。必须使用适配评估板的ARM端Qt环境、交叉编译工具链编译Qt工程,生成的Qt程序镜像方可在ARM端(即评估板)上正常运行。

LinuxSDK开发包中已提供适配评估板的ARM端Qt环境(Qt-5.15.8),请先参考Debian系统使用手册安装、编译LinuxSDK,构建适配评估板的交叉编译工具链和qmake工具。可基于命令行或Qt Creator工具对已有Qt工程进行编译,生成ARM端Qt程序镜像。

创龙科技提供的Qt工程位于产品资料“4-软件资料Demoqt-demos”目录下,其中src目录下包含Qt工程源码,bin目录下包含ARM端Qt程序镜像。请将整个qt-demos文件夹拷贝至Ubuntu工作目录下,如下图所示。

wKgZPGjaIjKAA9FTAAB9eE4yGXw305.png图 1

本文档以image_display工程为例进行演示,此工程的功能是通过显示屏在Qt界面上显示图片内容,并可实现竖屏显示功能。

基于命令行编译Qt工程

进入image_display工程源码目录,配置交叉编译工具链环境变量,执行qmake命令生成Makefile文件,再执行make命令编译生成可在评估板上正常运行的ARM端Qt程序镜像,如下图所示。

Host# cdqt-demos/image_display/src/

Host# source /home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/environment

Host# /home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/x86_64-linux/bin/qmake

Host# make

图 2

wKgZPGjaIj2AZkGTAAHzApwHgEw438.png图 3

基于QtCreator工具编译Qt工程

请先自行下载、安装Qt Creator工具至Ubuntu,执行如下命令启动Qt Creator(本次操作使用Qt Creator版本为4.11.0)。

Host# source /home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/environment

Host# qtcreator

图 4

启动Qt Creator工具后,点击菜单栏"Tools->Options…"。

wKgZO2iG2sCAZkhfAAEaq9C5_4A144.png图 5

wKgZO2jaIlmAHwTFAAD1XlGB61c958.png图 6

配置交叉编译工具链

点击"Compilers->Add->GCC->C++ ->Browse…",选择平台交叉编译工具链中的aarch64-linux-gnu-g++,然后点击Open确认。具体路径为:

/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g+

wKgZPGjaIqGAWvabAAFA-sRLPOs962.png图 7

wKgZO2jaIqGAR0JbAAIjtlmk-LA314.png图 8

选择后,Name修改为"RK3588-GCC",ABI选择"arm-linux-generic-elf-64bit",再点击Apply,如下图所示。

wKgZO2jaIsWARvSPAAIWSMikiCY235.png图 9

配置Qt Versions

点击"Qt Versions->Add",选择平台qmake,然后点击Open确认。具体路径为:

/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/x86_64-linux/bin/qmake

wKgZPGjaIs-AHNLYAACGvibnxsE835.png图 10

选择后,Version name修改为"RK3588-qt5"再点击Apply,如下图所示。

wKgZO2jaItaAWDsJAAFZa0ETaKo284.png图 11

配置Kits

请参照下图配置Kits各选项。点击"Kits ->Add",将Name修改为RK3588",Device type选择"Generic Linux Device",Compiler的C++选择"RK3588-GCC",Debugger选择"None",Qtversion选择"RK3588-qt5",点击Apply,然后点击OK完成配置。

wKgZPGjaIvOAEN53AAIay0XX9gk371.png图 12

编译Qt工程

点击"Projects ->Open"。

wKgZPGjaIvqAbZ8zAACtnJ_y-Z4905.png图 13

选中Qt工程源码目录中.pro文件,点击Open。

wKgZO2jaIwCADg8_AACPBXxTSEY065.png图 14

勾选RK3588平台Kits,点击"Configure Project"进行工程配置,如下图所示。

wKgZO2jaIwiANPxBAAF2XfM5Dr0478.png图 15

右击Qt工程,点击Build进行Qt工程编译。

wKgZO2iG22WAacKZAAF_TT29LOM122.png图 16

wKgZO2jaIxOADy3pAAVq_zJ60dQ246.png图 17

编译完成后,将生成可在评估板上运行的ARM端Qt程序镜像,如下图所示。

wKgZO2jaIy6Acl13AABOtDqheaI939.png图 18

在评估板上运行Qt程序

评估板默认支持HDMI显示,请通过HDMI线将HDMI显示屏与评估板HDMI OUT接口连接。如需全屏显示,请将鼠标与评估板USB2.0 HOST双层任一接口连接,点击窗口栏放大即可。

评估板上电启动,进入评估板文件系统,将ARM端Qt程序镜像拷贝至评估板文件系统任意目录下,同时将image_display工程bin目录下文件名为test.jpg的JPG格式图片拷贝至相同路径。请在Qt程序镜像所在路径下执行如下命令。

(1)查看程序运行参数。

Target# ./image_display

参数解释

imagepath:图片路径。

rotation:该参数为1,则竖屏显示。

wKgZPGjaIziAVQJOAAAPtD_CG74721.png图 19

(2)横屏显示图片。

执行如下命令,显示屏将显示如下图像,按"Ctrl + C"退出程序。

Target# ./image_display ./test.jpg

wKgZPGjaIz-AHuWmAAAJ9O3R0WA124.png图 20

wKgZO2jaIz-AM23vAAHB3WEuBnE086.png图 21

(3)竖屏显示图片。

执行如下命令,显示屏将显示如下图像,按"Ctrl + C"退出程序。

Target# ./image_display test.jpg 1

wKgZO2jaI26AI5iYAAAJ-xwKVl0036.png图 22

wKgZO2jaI26AS0a7AAD0wQpEWQc428.png图 23

Qt程序自启动说明

本章节以led_control案例为例,演示Qt程序自启动功能。led_control案例功能是通过显示屏在Qt界面上显示LED控制按钮,用于控制LED亮灭。

将案例bin目录下可执行程序拷贝至评估板文件系统"/root/"目录下。进入评估板文件系统执行如下命令,在"/etc/default/"目录下新建qtapp文件,并添加如下内容设置Qt程序运行依赖环境变量。

Target# vi /etc/default/qtapp

wKgZPGjaI4CAV8tiAAAGmztZJhE898.png图 24

wKgZO2jaI4CAeyaAAAAg6iXWqWs945.png图 25

UNTIME_DIR=/run/user/0

DISPLAY=":0"

QT_ROOT=/usr/lib/qt-5.15.8

QT_QPA_FONTDIR=/usr/share/fonts

QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt-5.15.8/plugins

QT_PLUGIN_PATH=/usr/lib/qt-5.15.8/plugins

LD_LIBRARY_PATH=/usr/lib/qt-5.15.8/lib:/usr/lib/qt-5.15.8/plugins/platform

执行如下命令,在"/etc/systemd/system/"目录下新建qtapp.service文件,并添加如下内容设置Qt程序自启动服务依赖关系以及Qt程序的路径。

Target# vi/etc/systemd/system/qtapp.service

wKgZPGjaI8OAZEyDAAAHAJbFKC4238.png图 26

wKgZPGjaI8OAMSQrAAAkMm0Hnmc564.png图 27

[Unit]

Description=Qt App Service

Requisite=display-manager.service

After=display-manager.service

[Service]

EnvironmentFile=-/etc/default/qtapp

ExecStart=/root/led_control -n 2

Restart=always

[Install]

WantedBy=multi-user.target

执行如下命令使能qtapp.service,然后执行reboot命令重启系统,即可从HDMI显示屏看到Qt程序自启动成功。

Target# systemctl enable qtapp

Target# reboot

wKgZPGjaI-mAA19IAAARBrfsZYs001.png图 28

wKgZPGjaI96ALK6eAAAsn11CTe4109.png图 29

如需禁止Qt程序自启动,请执行如下命令。

Target# systemctl disable qtapp

wKgZO2jaI_aAXeA4AAANx_m8eOg631.png图 30

GPU核心使用演示案例

本章节通过textures案例,演示基于Qt + OpenGL调用GPU核心进行图形渲染。

案例说明

本案例使用Qt提供的OpenGL模块,该模块是对OpenGL原生API进一步的封装并支持GUI编程,使得在Qt应用程序中使用OpenGL变的更加容易。

Qt程序在调用OpenGL模块的API时,会调用官方提供的OpenGL库,该库通过底层驱动调用GPU资源来进行图像的渲染。

wKgZPGjaI_2AfKz4AACpvfGm3VM476.png图 31

案例测试

评估板默认支持HDMI显示,请将HDMI显示器与评估板HDMIOUT接口连接,同时将鼠标与评估板USB2.0 HOST双层任一接口连接。

评估板上电启动,将textures案例的ARM端Qt程序镜像拷贝至评估板文件系统。并执行如下命令运行Qt程序。

Target# ./textures

wKgZO2jaJASAbdYpAAAJytv_mdg134.png图 32

Qt程序运行后,显示界面如下,使用鼠标点击任意一个骰子,被选中的骰子将自动进行旋转。

wKgZO2jaJAyARhCdAAEugWtGDUI786.png图 33

关键代码

(1)初始化主窗口,创建6个Qopenglwidget,并开启定时器

wKgZO2jaJBOAIquAAAEIuOkVCgg222.png图 34 window.cpp

(2)初始化OpenGL资源。

wKgZPGjaJBqAEHwSAAFMdrFkoMk883.png图 35 glwidget.cpp

(3)处理QMouseEvent事件。

wKgZO2jaJCGALxDyAADm3BJeetI692.png图 36 glwidget.cpp

(4)使用OpenGL进行绘制。

wKgZO2jaJCeACCNsAAFcMPo0YvA301.png图 37 glwidget.cpp

(5)OpenGL部件大小调整时,触发resizeGL事件。

wKgZPGjaJC6Ac0dnAAA5DnNjsvk842.png图 38 glwidget.cpp

审核编辑 黄宇