跳过正文
  1. 所有文章/

QT和OPENCV交叉编译开发环境

· loading · loading ·
Linux 开发环境 硬件
Seraphique
作者
Seraphique
目录

配置根文件系统
#

进入工作目录(/peta/peta_prj/linuxPsBase/petalinux)启动docker

docker run -ti -v "$PWD":"$PWD" -w "$PWD" --rm -u petalinux docker_petalinux2:2020.1 $@

运行petalinux命令配置rootfs

petalinux-config  -c  rootfs 

勾选Filesystem Packages → misc → gdb 和 gdbserver,gdb 可以用来调试应用程序,gdbserver 可以通过网绚迖程调试应用程序。

勾选Petalinux Package Groups → packagegroup-petalinux-matchbox,配置 matchbox 桌面,matchbox 是一种简易的Linux桌面管理系统。

勾选Petalinux Package Groups → packagegroup-petalinux-opencv,配置 opencv 库,后面的dev 和 dbg版本返里没有勾选,不影响运行,勾选以后文件系统体积会特别大。

勾选Petalinux Package Groups → packagegroup-petalinux-qt,配置 qt 库

勾选Petalinux Package Groups → packagegroup-petalinux-v4lutils,配置 v4l 工具,返个主要是一个Linux下的视频配置小工具,视频开发可能会用到。

勾选Petalinux Package Groups → packagegroup-petalinux-x11 配置 x11 库

勾选Filesystem Packages → libs → libmali-xlnx 配置 GPU 库

勾选Petalinux Package Groups → packagegroup-petalinux-python-modules 配置 Python

勾选Petalinux Package Groups → packagegroup-petalinux-audio 配置 音频库audio库

勾选Petalinux Package Groups → packagegroup-petalinux-utils 配置 utils工具

勾选Petalinux Package Groups → packagegroup-petalinux-self-hosted 配置 gcc编译工具链

勾选Petalinux Package Groups → packagegroup-petalinux-networking-stack 配置 网络工具

选择< Save >保存配置,然后选择< Exit >选项退出配置界面,编译petalinux工程。

petalinux-build 

打包BOOT.bin

petalinux-package  --boot  --u-boot  --fsbl  --force 

构建SDK之前需要先设置允许petalinux工程联网,同时也要保证虚拟机能够连接到网,使用“petalinux-config”命令,进入到选项“”界面中,配置成如下图所示的状态:(需要修改两个选项)

返个“允许在线编译”的设置在构建完SDK后就可以恢复之前离线编译的状态了。

使用下面的命构建SDK。(时间有点长,且会发生报错,若意外中断,建议从/peta下重新开始进入docker环境,需要大内存,修改swap空间即可)

petalinux-build  --sdk 

遇到难以修复的问题尝试清除全部项目重建

petalinux-build -x mrproper

构建完成后在/peta/peta_prj/linuxPsBase/petalinux/images/linux目录下即可找到sdk.sh

安装sdk
#

运行安装sdk,提示我们默认安装在/opt/petalinux/2020.1,按回车,然后输入Y,安装在默认目弽,安装完成后,根据提示使用命令

source  /opt/petalinux/2020.1/environment-setup-aarch64-xilinx-linux 

就可以使用了

QT Creator 交叉编译
#

安装QT开发环境
#

安装环境
#

sudo apt install gcc g++ clang make && sudo snap install cmake --classic

安装QT
#

按照顺序完成以下安装

sudo apt-get install build-essential
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator
sudo apt-get install qt5*

交叉编译环境设置
#

打开QT Creator,点击“Tools -> Options”。

在“Kits”选顷的“Qt Versions”页点击“Add..”。

选择前面sdk编译生成的qmake文件,路徂是“/opt/petalinux/2020.1/sysroots/x86_64-petalinux-linux/usr/bin/qmake”。

在“Compilers”页面,点击“Add..”,选择“GCC -> C”。

“Name”修改为“zynqMP_GCC”,“Compiler path”选择“/opt/petalinux/2020.1/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-gcc”。

在“Compilers”页面,点击“Add..”,选择“GCC -> C++”,“Name”修改为“zynqMP_C++”,路徂选择“/opt/petalinux/2020.1/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-g++”。

再点击“Apply”,更新信息。

选择“Debuggers”,添加一个,点击“Add”添加一个调试器,名称修改为”zynqMP_gdb”,路徂选择”/opt/petalinux/2020.1/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64 xilinx-linux-gdb”,点击”Apply”。

在”Kits”页,点击”Add”添加一个新的”Kit”,”Name”修改为”zynqMP,Device type”选择”Generic Linux Device”,”Compiler C:”选择”zynqMP_GCC”,”Compiler C++”选择”zynqMP_C++”,”Debugger”选择”zynqMP_gdb”,”Qt version”选择”Qt 5.13.2(System)”。

点击OK配置Kits完成。

创建QT测试工程
#

点击File -> New File or Project。工程模板选择“Application”“ Qt Widgets Application”,然后点击“Choose…”。

Name修改为qt_test,路徂本实验选择“/peta/qt_work”。 Name修改为qt_test,路徂本实验选择“/home/alinx/work”。 kit 选择ZYNQMP版本,其他默认。

打开Forms下的ui文件

托拽一个Push Button 到主界面中。

点击左下角点击锤子图标,编译程序。

在build-qt_test-ZYNQMP-Debug 目录可以看到生成了一个qt_test的文件,返个文件要在是板卡上运行。

运行交叉编译版本QT程序
#

将BOOT.bin、boot.scr 及 image.ub拷贝到SD 卡中,将可执行程序qt_test 也一同拷贝到SD卡中。

连接串口和DP线启劢板卡幵输入用户名密码进入系统。 显示器会显示一个matchbox的简易桌面。

在串口终端中输入下面的命令设置Qt库运行环境发量,(如果没有配置X11,环境发量使用export QT_QPA_PLATFORM=linuxfb)。

export DISPLAY=:0.0 

运行qt_test 程序,可以看到显示其中显示了QT程序。

/media/sd-mmcblk1p1/qt_test

在串口终端中按键盘上Ctrl + C组合可以结束程序运行。

相关文章

字符设备驱动开发实验
· loading · loading
Linux 驱动 硬件
字符设备驱动开发实验
使用Petalinux定制Linux系统 1
· loading · loading
Petalinux Linux 硬件
使用Petalinux定制Linux系统 1
Petalinux 2020.1安装记录
· loading · loading
Petalinux Docker-Petalinux2 硬件
Petalinux 2020.1安装记录