Zynq UltraScale+ MPSoC-Qt程序编译

4 篇文章 0 订阅
3 篇文章 1 订阅


参考了网上大神们的文章,为方便自己查阅做下记录
用到的一些软件版本分别是:Ubuntu18.04、Petalinux2019.1、Qt5.12,硬件为zcu106.

1 安装编译器

没有装过vivado sdk的机器,需要单独安装编译器。
在这里插入图片描述
由上表知工具链选aarch64-linux-gnu-。可以在Linaro下载
在这里插入图片描述选择gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz下载并解压至/home/zxl/Xilinx/SDK/2019.1/gnu/aarch64/nt/aarch64-linux/ (路径无所谓,这里和sdk的一致)。
测试安装成功与否:

export CROSS_COMPILE=aarch64-linux-gnu-
PATH=$PATH:/home/zxl/Xilinx/SDK/2019.1/gnu/aarch64/nt/aarch64-linux/bin
aarch64-linux-gnu-g++ -v

在这里插入图片描述
安装成功。
也可以将以上命令写入.bashrc,以便自动添加路径。

gedit .bashrc
###添加至.bashrc####
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=$PATH:/home/zxl/Xilinx/SDK/2019.1/gnu/aarch64/nt/aarch64-linux/bin
###################

2 编译Qt库

下载 Qt5.12源码包
在这里插入图片描述选择qt-everywhere-src-5.12.8.tar.xz下载,.zip为windows版的。下载完后解压,可以看到源码文件夹中qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf与编译器文件夹aarch64-linx/bin是相对应的。
进入qt源码文件夹,编写脚本:autoconfig.sh,具体设置说明见http://www.cppblog.com/lauer3912/articles/136423.html

#!/bin/sh
./configure \
-release \
-opensource \
-xplatform linux-aarch64-gnu-g++ \
-prefix /home/zxl/tools/zynqmp_qt5.12 \
-nomake tests \
-nomake examples \
-no-opengl

运行

./autoconfig.sh
make
make install

生成如下文件
在这里插入图片描述

3 编写Qt程序

3.1 安装QtCreator

下载Qt5.12安装程序,qt-opensource-linux-x64-5.12.8.run,下载完后直接安装。
在这里插入图片描述

3.2 配置

运行QtCreator,tools->options->Kits->QtVersions->Manual->add选择新生成的qmake:/home/zxl/tools/zynqmp_qt5.12/bin/qmake,点击apply。
在这里插入图片描述
选择Compilers页,add->gcc->c, name改为ZYNQMP_GCC,compiler path改为/home/zxl/Xilinx/SDK/2019.1/gnu/aarch64/nt/aarch64-linux/bin/aarch64-linux-gcc
在这里插入图片描述
add->gcc->c++, name改为ZYNQMP_G++,compiler path改为/home/zxl/Xilinx/SDK/2019.1/gnu/aarch64/nt/aarch64-linux/bin/aarch64-linux-g++
在这里插入图片描述
点击apply
选择Kits页,Manual->add,name改为ZYNQMP,compiler与qt version都改为最新的,如图
在这里插入图片描述
点击ok,完成配置。

3.3 新建测试工程

QtCreator->File->New File or Project->Application->Qt Widgets Application,点击choose
在这里插入图片描述Location:填写工程名与路径,Next
Build System:Next
Details:Next
Translation:Next
在这里插入图片描述
Kits:DesktopQt与Zynqmp两个都勾上,Next
Summary:完成
在这里插入图片描述写一个测试程序,双击mainwindow.ui进入界面设计
在这里插入图片描述点击锤子build,在ZYNQMP-Debug文件夹下生成test文件,将test文件拷贝至sd卡
在这里插入图片描述另外:
Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录http://c.biancheng.net/view/3901.html,所以需要建立软链接。

sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so

4 Petalinux生成镜像

根据ZynqMP-petalinux使用生成镜像,其中配置rootfs时,进入Petalinux Package Groups,勾选
packagegroup-petalinux-qt->packagegroup-petalinux-qt
packagegroup-petalinux-qt-extended->packagegroup-petalinux-qt-extended
packagegroup-petalinux-x11->packagegroup-petalinux-x11
三个选项。
将生成的BOOT.bin,image.ub放入sd卡。

5 测试

SD卡插入zcu106,系统启动,挂载SD卡

mount /dev/mmcblk0p1 /mnt

写测试脚本

cd /mnt
vi test.sh
#!/bin/bash
export DISPLAY=:0.0
Xorg&
./test

运行脚本

./test.sh

如图
在这里插入图片描述自动熄屏的问题参考WIKI

/etc/X11/xorg.conf
Section "InputDevice"
    Identifier  "System Mouse"
    Driver      "mouse"
    Option      "Device" "/dev/input/mouse0"
EndSection
 
Section "InputDevice"
    Identifier  "System Keyboard"
    Driver      "kbd"
    Option      "Device" "/dev/input/event0"
EndSection
 
Section "Device"
        Identifier      "ZynqMP"
        Driver          "armsoc"
        Option          "DRI2"                  "true"
        Option          "DRI2_PAGE_FLIP"        "false"
        Option          "DRI2_WAIT_VSYNC"       "true"
        Option          "SWcursorLCD"           "false"
        Option          "DEBUG"                 "false"
EndSection
 
Section "Screen"
        Identifier      "DefaultScreen"
        Device          "ZynqMP"
        DefaultDepth    16
EndSection
 
Section "ServerFlags"
        Option          "BlankTime"             "0"
        Option          "StandbyTime"           "0"
        Option          "SuspendTime"           "0"
        Option          "OffTime"               "0"
EndSection
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值