QT是一个跨平台的C++图形用户界面应用程序开发框架。它既可以开发GUI图形用户界面程序,也可用于开发非GUI程序,比如控制台工具和服务器。由于QT良好的跨平台特性,基本上不做修改就可以在Windows或Linux或嵌入式设备上实现同样的界面。Linux操作系统是嵌入式的主力军,广泛应用于消费类电子、工业控制、电信/网络/通讯、汽车电子、医疗设备、仪器仪表等相关行业,这也正好符合AMD FPGA的应用方向,本篇主要介绍如何在AMD的SOC器件上进行QT的开发调试。
基于AMD SOC的QT应用程序开发方法主要有两种方式:一种方式是基于petalinux工程新建一个application将源码导入在使用petalinux-build进行编译部署,另一种方式是PC端进行开发调试再使用AMD交叉编译工具进行编译生成SOC的二进制代码再放到petalinux工程进行打包或者直接下载到SOC端进行运行调试,本文主要介绍第二种方式,因为基于PC端进行界面开发或逻辑调试时可以用PC的桌面编译器先进行调试,然后再切换AMD编译器生成SOC的应用程序用于部署,这种方式对于开发调试更加友好。
一、安装QT开发环境
选择相应用的版本和操作系统进行下载安装文件进行安装:
二、Petalinux生成SDK包
由于获取AMD交叉编译工具链需要用Petalinux构建SDK,SDK也就是软件开发工具集,与Petalinux构建的根文件系统息息相关,里面不仅包含有Petalinux构建的根文件系统,各种库和头文件,还包含linux交叉编译工具链,比如QT Creator中需要的qmake和链接时所需要的QT基础库,所以我们需要先使用petalinux来编译一个SDK。
如果没有现成的petalinux工程,可以在官网下载一些开发板的bsp包来快速构建petalinux工程,然后使用petalinux-config -c rootfs进行配置,主要需要选择qt和sdk_qt,配置路径:
具体如下:
1、使用petalinux-build和petalinux-build –sdk编译获得SDK;
2、SDK位于工程目录images/linux下的sdk.sh,然后运行sdk.sh进行安装,安装目录位于/opt/petalinux/2023.1下,安装成功后我们就获得了交叉编译工具和库等。
三、QT Creator配置
打开QT Creator软件,在[工具]→[选项],在[Kits]中先配置[编译器],选择[添加],名称可以自定义,这里我们就叫[amd-xilinux-aarch64],路径:
1、C++选择和aarch64-xilinx-linux-g++:
2、Debuggers配置:
[Name]同样可以自定义,[Path]选择如下:
3、配置qmake:
右侧按钮选择[添加]然后选择路径,路径位于SDK的安装目录
4、最后配置Kits:
Device type:选择设备的类型,这里有四个选择项,分别为Desktop(PC机)、Android Device(安卓设备)、Generic Linux Device(通用Linux设备)和 QNX Device(QNX设备);对于AMD SOC来说,选择Generic Linux Device。
Sysroot:系统镜像的根目录,为SDK安装路径下的
Compiler C和C++:选择刚刚我们新建 的amd-xilinx-aarch64
Debugger选择刚刚新建 的amd-xilinx-gdb
Qt version选择 xilinx-QT 5.14.4
配置完成之后点击“Apply”应用,再点击OK,这样我们就完成了QTCreator的配置了。
5、测试工程验证:
我们可以新一个工程或打开一个[欢迎]页面的示例工程来验证一下编译器,比如我们打开下图中的[Analog Clock]的示例工程;
然后在[Build&Run]中添加[Desktop Qt 5.12.11 GCC64bit]的桌面编译器和[AMD-Xilinx-aarch64]的交叉编译器,这样在开发调试的时候就可以使用[Desktop Qt 5.12.11 GCC64bit]来调试界面布局和逻辑关系等,等调试完再使用[AMD-Xilinx-aarch64]编译器来编译可以在SOC上运行的程序。
在点击[AMD-Xilinx-aarch64]下面的[Build]后面[build-analogclock-AMD_Xilinx_aarch64-Debug]的目录找到[analogclock]的程序,可以下载到SOC上接上DP/HDMI等接口进行运行,如果SOC没有运行X11服务,需要手动配置一下环境变量exportQT_QPA_PATFORM=linuxfb和export DISPLAY=:0.0,这样显示器上就会有一个时钟输出了。
6、集成Petalinux工程
在petalinux工程根目录使用petalinux-create命令创建一个app
替换project-spec/meta-user/recipes-apps/analogclock/files/中的程序后再运行petalinux-build就可以集成到petalinux工程中。
这样就可以完成一个基于QT的程序应用在SOC侧的开发和集成了,这里对于很多客户遇到的问题就是如何获取AMD的交叉编译器,那我们是通过在petalinux工程中去使用petalinux-build –sdk命令来生成所需要的编译器和根文件系统,这些方法同样适用于在Vitis中来新建 一个软件平台来进行软件模拟开发调试。
-
amd
+关注
关注
25文章
5413浏览量
133763 -
应用程序
+关注
关注
37文章
3232浏览量
57530 -
编译器
+关注
关注
1文章
1614浏览量
49002
原文标题:基于AMD SOC的QT应用程序开发
文章出处:【微信号:Comtech FPGA,微信公众号:Comtech FPGA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论