陈工-创龙科技 发表于 2025-9-29 16:37:37

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

前言为助力开发者高效开展创龙科技研发评估板的 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-软件资料\Demo\qt-demos\”目录下,其中src目录下包含Qt工程源码,bin目录下包含ARM端Qt程序镜像。请将整个qt-demos文件夹拷贝至Ubuntu工作目录下,如下图所示。
https://file1.elecfans.com/web3/M00/32/A2/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/environmentHost# /home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/x86_64-linux/bin/qmakeHost# make
https://file1.elecfans.com/web3/M00/32/B0/wKgZO2jaIj2AU9RgA***gyDCn4gs764.png图 2
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIj2AZkGTAAHzApwHgEw438.png图 3
基于Qt Creator工具编译Qt工程请先自行下载、安装Qt Creator工具至Ubuntu,执行如下命令启动Qt Creator(本次操作使用Qt Creator版本为4.11.0)。Host# source /home/tronlong/RK3588/rk3588_linux_release_v1.2.1/debian/sysroots/environmentHost# qtcreator
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIlCAJ8ocAABNJlZNPNg802.png图 4
启动Qt Creator工具后,点击菜单栏"Tools -> Options…"。
https://file1.elecfans.com/web3/M00/26/84/wKgZO2iG2sCAZkhfAAEaq9C5_4A144.png图 5
https://file1.elecfans.com/web3/M00/32/B0/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+
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIqGAWvabAAFA-sRLPOs962.png图 7
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaIqGAR0JbAAIjtlmk-LA314.png图 8
选择后,Name修改为"RK3588-GCC",ABI选择"arm-linux-generic-elf-64bit",再点击Apply,如下图所示。
https://file1.elecfans.com/web3/M00/32/B1/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

https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIs-AHNLYAACGvibnxsE835.png图 10
选择后,Version name修改为"RK3588-qt5"再点击Apply,如下图所示。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaItaAWDsJAAFZa0ETaKo284.png图 11
配置Kits请参照下图配置Kits各选项。点击"Kits -> Add",将Name修改为RK3588",Device type选择"Generic Linux Device",Compiler的C++选择"RK3588-GCC",Debugger选择"None",Qt version选择"RK3588-qt5",点击Apply,然后点击OK完成配置。
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIvOAEN53AAIay0XX9gk371.png图 12
编译Qt工程点击"Projects -> Open"。
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIvqAbZ8zAACtnJ_y-Z4905.png图 13
选中Qt工程源码目录中.pro文件,点击Open。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaIwCADg8_AACPBXxTSEY065.png图 14
勾选RK3588平台Kits,点击"Configure Project"进行工程配置,如下图所示。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaIwiANPxBAAF2XfM5Dr0478.png图 15
右击Qt工程,点击Build进行Qt工程编译。
https://file1.elecfans.com/web3/M00/26/84/wKgZO2iG22WAacKZAAF_TT29LOM122.png图 16
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaIxOADy3pAAVq_zJ60dQ246.png图 17
编译完成后,将生成可在评估板上运行的ARM端Qt程序镜像,如下图所示。
https://file1.elecfans.com/web3/M00/32/B1/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参数解释image path:图片路径。rotation:该参数为1,则竖屏显示。
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIziAVQJOAAAPtD_CG74721.png图 19
(2)横屏显示图片。
执行如下命令,显示屏将显示如下图像,按"Ctrl + C"退出程序。Target# ./image_display ./test.jpg
https://file1.elecfans.com/web3/M00/32/A2/wKgZPGjaIz-AHuWmAAAJ9O3R0WA124.png图 20
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaIz-AM23vAAHB3WEuBnE086.png图 21
(3)竖屏显示图片。
执行如下命令,显示屏将显示如下图像,按"Ctrl + C"退出程序。Target# ./image_display test.jpg 1
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaI26AI5iYAAAJ-xwKVl0036.png图 22
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaI26AS0a7AAD0wQpEWQc428.png图 23
Qt程序自启动说明本章节以led_control案例为例,演示Qt程序自启动功能。led_control案例功能是通过显示屏在Qt界面上显示LED控制按钮,用于控制LED亮灭。将案例bin目录下可执行程序拷贝至评估板文件系统"/root/"目录下。进入评估板文件系统执行如下命令,在"/etc/default/"目录下新建qtapp文件,并添加如下内容设置Qt程序运行依赖环境变量。Target#vi /etc/default/qtapp
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI4CAV8tiAAAGmztZJhE898.png图 24
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaI4CAeyaAAAAg6iXWqWs945.png图 25
UNTIME_DIR=/run/user/0DISPLAY=":0"QT_ROOT=/usr/lib/qt-5.15.8QT_QPA_FONTDIR=/usr/share/fontsQT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt-5.15.8/pluginsQT_PLUGIN_PATH=/usr/lib/qt-5.15.8/pluginsLD_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
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI8OAZEyDAAAHAJbFKC4238.png图 26
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI8OAMSQrAAAkMm0Hnmc564.png图 27
Description=Qt App ServiceRequisite=display-manager.serviceAfter=display-manager.service
EnvironmentFile=-/etc/default/qtappExecStart=/root/led_control -n 2Restart=always
WantedBy=multi-user.target
执行如下命令使能qtapp.service,然后执行reboot命令重启系统,即可从HDMI显示屏看到Qt程序自启动成功。Target# systemctl enable qtappTarget# reboot
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI-mAA19IAAARBrfsZYs001.png图 28
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI96ALK6eAAAsn11CTe4109.png图 29
如需禁止Qt程序自启动,请执行如下命令。Target# systemctl disable qtapp
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaI_aAXeA4AAANx_m8eOg631.png图 30
GPU核心使用演示案例本章节通过textures案例,演示基于Qt + OpenGL调用GPU核心进行图形渲染。案例说明本案例使用Qt提供的OpenGL模块,该模块是对OpenGL原生API进一步的封装并支持GUI编程,使得在Qt应用程序中使用OpenGL变的更加容易。Qt程序在调用OpenGL模块的API时,会调用官方提供的OpenGL库,该库通过底层驱动调用GPU资源来进行图像的渲染。
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaI_2AfKz4AACpvfGm3V***76.png图 31
案例测试评估板默认支持HDMI显示,请将HDMI显示器与评估板HDMI OUT接口连接,同时将鼠标与评估板USB2.0 HOST双层任一接口连接。评估板上电启动,将textures案例的ARM端Qt程序镜像拷贝至评估板文件系统。并执行如下命令运行Qt程序。Target# ./textures
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaJASAbdYpAAAJytv_mdg134.png图 32
Qt程序运行后,显示界面如下,使用鼠标点击任意一个骰子,被选中的骰子将自动进行***。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaJAyARhCdAAEugWtGDUI786.png图 33
关键代码(1)初始化主窗口,创建6个Qopenglwidget,并开启定时器。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaJBOAIquAAAEIuOkVCgg222.png图 34 window.cpp
(2)初始化OpenGL资源。
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaJBqAEHwSAAFMdrFkoMk883.png图 35 glwidget.cpp
(3)处理QMouseEvent事件。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaJCGALxDyAADm3BJeetI692.png图 36 glwidget.cpp
(4)使用OpenGL进行绘制。
https://file1.elecfans.com/web3/M00/32/B1/wKgZO2jaJCeACCNsAAFcMPo0YvA301.png图 37 glwidget.cpp
(5)OpenGL部件大小调整时,触发resizeGL事件。
https://file1.elecfans.com/web3/M00/32/A3/wKgZPGjaJC6Ac0dnAAA5DnNjsvk842.png图 38 glwidget.cpp

页: [1]
查看完整版本: 创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Qt工程编译、GPU核心使用说明

Baidu
map