0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Comtech FPGA 来源:Comtech FPGA 2023-08-04 15:52 次阅读

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

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

3ce44620-3297-11ee-9e74-dac502259ad0.png

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

3d2568e4-3297-11ee-9e74-dac502259ad0.png

具体如下:

3d3a44e4-3297-11ee-9e74-dac502259ad0.png

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

3d6cf484-3297-11ee-9e74-dac502259ad0.png

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

3dc98d70-3297-11ee-9e74-dac502259ad0.png

三、QT Creator配置

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

3df0f608-3297-11ee-9e74-dac502259ad0.png

3e0dc6f2-3297-11ee-9e74-dac502259ad0.png

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

3e391a46-3297-11ee-9e74-dac502259ad0.png

2、Debuggers配置:

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

3e5429d0-3297-11ee-9e74-dac502259ad0.png

3e6011e6-3297-11ee-9e74-dac502259ad0.png

3、配置qmake:

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

3e76aaf0-3297-11ee-9e74-dac502259ad0.png

3e8a9042-3297-11ee-9e74-dac502259ad0.png

4、最后配置Kits:

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

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

3eb4c8b2-3297-11ee-9e74-dac502259ad0.png

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

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

Qt version选择 xilinx-QT 5.14.4

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

3ece2776-3297-11ee-9e74-dac502259ad0.png

5、测试工程验证:

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

3eef1fbc-3297-11ee-9e74-dac502259ad0.png

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

3f16b400-3297-11ee-9e74-dac502259ad0.png

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

3f3779c4-3297-11ee-9e74-dac502259ad0.png

6、集成Petalinux工程

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

3faa5318-3297-11ee-9e74-dac502259ad0.png

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

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

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

    关注

    25

    文章

    5413

    浏览量

    133763
  • 应用程序
    +关注

    关注

    37

    文章

    3232

    浏览量

    57530
  • 编译器
    +关注

    关注

    1

    文章

    1614

    浏览量

    49002

原文标题:基于AMD SOC的QT应用程序开发

文章出处:【微信号:Comtech FPGA,微信公众号:Comtech FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    编写第一个QT程序

    学习一种编程语言或编程环境,通常会先编写一个“Hello World”程序。我们也用 Qt Creator 编写一个“Hello World”程序,以初步了解 Qt Creator 设
    发表于 11-21 10:41 991次阅读

    Linux系统中搭建Qt Creator开发环境

    Linux开发板中配置Qt运行环境一文中介绍了如何将Qt移植到Linux开发板上,接下来就需要编写Qt
    发表于 11-29 14:06 2450次阅读

    QT应用程序开发手册-20150918

    QT应用程序开发手册-20150918
    发表于 02-05 09:41

    如何构建和编译一个Qt界面应用程序

    第一个嵌入式QT应用程序在成功安装 Qt Creator 开发环境后,我们通过一个简单的嵌入式Qt应用程
    发表于 11-04 07:08

    A40i应用笔记 | Qt应用程序开发工具 Qt Creator的安装及使用

    简介:本文主要介绍Qt应用程序开发工具 Qt Creator 的安装及使用飞凌移植好的 Qt的SDK来搭建
    发表于 04-21 09:50

    Qt 跨平台C++图形用户界面应用程序开发框架

    Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发
    发表于 03-28 21:03

    基于QT/Embedded的可变情报板应用程序开发

    基于QT/Embedded的可变情报板应用程序开发 QT是奇趣科技推出的一种多平台的C++图形用户界面应用程序框架。它包括
    发表于 03-03 09:36 768次阅读

    基于QT/Embedded的可变情报板应用程序开发

    基于QT/Embedded的可变情报板应用程序开发  0引言   QT是奇趣科技推出的一种多平台的C++图形用户界面应用程序框架。它包
    发表于 03-09 10:39 901次阅读

    嵌入式linux应用开发QT

    挪威 TrollTech 公司出品。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。 自1996年Qt进入商业领域
    发表于 11-06 14:05 4次下载

    Qt Designer、Qt Quick Designer和Qt Creator应用程序有什么区别?

    不管是Qt新手还是开发qt的群体来说,对Qt Designer、Qt Quick Designer、Q
    的头像 发表于 03-17 09:40 7148次阅读

    嵌入式Linux应用程序开发-(1)第一个嵌入式QT应用程序

    第一个嵌入式QT应用程序在成功安装 Qt Creator 开发环境后,我们通过一个简单的嵌入式Qt应用程
    发表于 11-01 17:21 16次下载
    嵌入式Linux<b class='flag-5'>应用程序</b><b class='flag-5'>开发</b>-(1)第一个嵌入式<b class='flag-5'>QT</b><b class='flag-5'>应用程序</b>

    在MPSoC ZCU106单板的HDMI-Tx上基于eglfs_kms的运行QT应用程序

    按照在MPSoC上运行基于eglfs_kms的QT应用程序, 可以在MPSoC ZCU106单板的DP上基于eglfs_kms的运行QT应用程序。按照在VCUTRD 2020.1 里设
    的头像 发表于 08-02 09:04 2857次阅读

    Qt应用程序出现卡顿的现象怎么解决呢

    在使用Qt完成项目开发后,需要将其运行在嵌入式linux平台上,在设备启动后,经uboot引导和linux内核后,直接进入Qt应用程序
    的头像 发表于 09-23 10:38 8251次阅读

    A40i应用笔记 | Qt应用程序开发工具 Qt Creator的安装及使用

    简介本文主要介绍Qt应用程序开发工具QtCreator的安装及使用飞凌移植好的Qt的SDK来搭建Qt应用
    的头像 发表于 02-25 10:03 1397次阅读
    A40i应用笔记 | <b class='flag-5'>Qt</b><b class='flag-5'>应用程序</b><b class='flag-5'>开发</b>工具 <b class='flag-5'>Qt</b> Creator的安装及使用

    Qt上位机开发实战案例

    Qt框架的开发人员能迅速上手和操作。 即使不开发Qt应用程序Qt Creator也是一个
    的头像 发表于 03-13 12:31 2083次阅读
    <b class='flag-5'>Qt</b>上位机<b class='flag-5'>开发</b>实战案例