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

    文章

    5198

    浏览量

    132636
  • 应用程序
    +关注

    关注

    37

    文章

    3136

    浏览量

    56398
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48617

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

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

收藏 人收藏

    评论

    相关推荐

    编写第一个QT程序

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

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

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

    QT应用程序开发手册-20150918

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

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

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

    QT应用程序的字体该怎样去设置

    QT应用程序开发板上运行时,字体显示比QT creator里的设计界面大,请问有设置的方法吗?目的是creator里的字体和开发板上一样大
    发表于 12-30 06:14

    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 730次阅读

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

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

    嵌入式LINUX的Qt开发入门教程

    的跨平台图形用户界面应用程序开发框架。如何跨平台?上到服务器上位机,下到嵌入式GUI,上天入地无所不能。Qt最早是由1991年由Qt Company
    发表于 11-01 16:31 12次下载
    嵌入式LINUX的<b class='flag-5'>Qt</b><b class='flag-5'>开发</b>入门教程

    嵌入式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>

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

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

    Windows下的QT系统开发环境搭建

      QT是一款由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。 它既可以开发
    的头像 发表于 05-17 11:39 2263次阅读
    Windows下的<b class='flag-5'>QT</b>系统<b class='flag-5'>开发</b>环境搭建

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

    简介本文主要介绍Qt应用程序开发工具QtCreator的安装及使用飞凌移植好的Qt的SDK来搭建Qt应用
    的头像 发表于 02-25 10:03 903次阅读
    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 444次阅读
    <b class='flag-5'>Qt</b>上位机<b class='flag-5'>开发</b>实战案例