基于AMD SOC的QT应用程序开发

描述

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开发环境

选择相应用的版本和操作系统进行下载安装文件进行安装:

amd

二、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,配置路径:

amd

具体如下:

amd

1、使用petalinux-build和petalinux-build –sdk编译获得SDK;

amd

2、SDK位于工程目录images/linux下的sdk.sh,然后运行sdk.sh进行安装,安装目录位于/opt/petalinux/2023.1下,安装成功后我们就获得了交叉编译工具和库等。

amd

三、QT Creator配置

打开QT Creator软件,在[工具]→[选项],在[Kits]中先配置[编译器],选择[添加],名称可以自定义,这里我们就叫[amd-xilinux-aarch64],路径:

amd

amd

1、C++选择和aarch64-xilinx-linux-g++:

amd

2、Debuggers配置:

[Name]同样可以自定义,[Path]选择如下:

amd

amd

3、配置qmake:

右侧按钮选择[添加]然后选择路径,路径位于SDK的安装目录

amd

amd

4、最后配置Kits:

Device type:选择设备的类型,这里有四个选择项,分别为Desktop(PC机)、Android Device(安卓设备)、Generic Linux Device(通用Linux设备)和 QNX Device(QNX设备);对于AMD SOC来说,选择Generic Linux Device。

Sysroot:系统镜像的根目录,为SDK安装路径下的

amd

Compiler C和C++:选择刚刚我们新建 的amd-xilinx-aarch64

Debugger选择刚刚新建 的amd-xilinx-gdb

Qt version选择 xilinx-QT 5.14.4

配置完成之后点击“Apply”应用,再点击OK,这样我们就完成了QTCreator的配置了。

amd

5、测试工程验证:

我们可以新一个工程或打开一个[欢迎]页面的示例工程来验证一下编译器,比如我们打开下图中的[Analog Clock]的示例工程;

amd

然后在[Build&Run]中添加[Desktop Qt 5.12.11 GCC64bit]的桌面编译器和[AMD-Xilinx-aarch64]的交叉编译器,这样在开发调试的时候就可以使用[Desktop Qt 5.12.11 GCC64bit]来调试界面布局和逻辑关系等,等调试完再使用[AMD-Xilinx-aarch64]编译器来编译可以在SOC上运行的程序。

amd

在点击[AMD-Xilinx-aarch64]下面的[Build]后面[build-analogclock-AMD_Xilinx_aarch64-Debug]的目录找到[analogclock]的程序,可以下载到SOC上接上DP/HDMI等接口进行运行,如果SOC没有运行X11服务,需要手动配置一下环境变量exportQT_QPA_PATFORM=linuxfb和export DISPLAY=:0.0,这样显示器上就会有一个时钟输出了。

amd

6、集成Petalinux工程

在petalinux工程根目录使用petalinux-create命令创建一个app

amd

替换project-spec/meta-user/recipes-apps/analogclock/files/中的程序后再运行petalinux-build就可以集成到petalinux工程中。

这样就可以完成一个基于QT的程序应用在SOC侧的开发和集成了,这里对于很多客户遇到的问题就是如何获取AMD的交叉编译器,那我们是通过在petalinux工程中去使用petalinux-build –sdk命令来生成所需要的编译器和根文件系统,这些方法同样适用于在Vitis中来新建 一个软件平台来进行软件模拟开发调试。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分