作者:Jacky Gao,AMD工程师;来源:AMD开发者社区
本文介绍一种通过petalinux制作的根文件系统,在Windows平台下建立交叉编译环境的方法。并使用简单的QT程序验证工具链环境。
文中可能用的软件工具包括wsl2-ubuntu,petalinux以及Vivado,Vitis等。
1. 创建基于的vivado工程,创建Block Design,加入Zynq模式,导出xsa.
2. 新建petalinux工程,petalinux-create –type project –template zynq –name petalinux
3. 在petalinux工程出导入xsa,petalinux-config –get-hw-description xxx/*.xsa
4. 配置petalinux根文件系统petalinux-config -c rootfs
进入Petalinux Package Groups,选正下面几个包
packagegroup-petalinux-audio-dev
packagegroup-petalinux-display-debug-dev
packagegroup-petalinux-lmsensors-dev
packagegroup-petalinux-matchbox-dev
5packagegroup-petalinux-networking-debug-dev
packagegroup-petalinux-networking-stack-dev
packagegroup-petalinux-openamp-dev
packagegroup-petalinux-opencv-dev
packagegroup-petalinux-python-modules-dev
packagegroup-petalinux-qt-dev
packagegroup-petalinux-qt-extended-dev
packagegroup-petalinux-v4lutils-dev
packagegroup-petalinux-vitis-acceleration-essential-dev
packagegroup-petalinux-x11-dev
5. 编译petalinux-build -c rootfs
6. 编译完成后进入images/linux文件夹,里面包含rootfs.tar.gz文件,我们先在Linux环境下对其解压缩,分别执行
mkdir rootfs
cd rootfs
tar xzvf ../rootfs.tar.gz
7. 拷贝根文件系统开发包到Windows主机,注意由于Windows系统不支持符号连接,我们在拷贝符号连接文件的时候需要替换成其对应的目标文件,我们用-L选项完成此目标。我们只需要拷贝lib和usr文件夹即可。
cp -rfL lib/
cp -rfL usr/
8. 在Windows中下载并安装QT
9. 在Windows中下载并安装CMake最新版本,https://cmake.org/download/
10.在Windows中下载并安装GnuWin32,https://gnuwin32.sourceforge.net/packages/make.htm
11. 我们需要在Windows系统中添加GnuWin32和gcc-arm-linux-gnueabi的环境变量
12. 至此,在Windows下的交叉编译环境即创建完成 。MPSoC 和Versal的原理同上。
我们在Windows平台基于CMake工具,使用以上创建的交叉编译工具链,编译一个简单的QT工程实例。
运行CMake,Source Code选择附件中的sw目录,Where to build the binaries选创建的build目录,点Configure,弹出的对话框配置如下
2. 点Next,Specify the Toolchain file选择附件中的zynq-linux-toolchain.cmake文件,点Finish
3. 点击Create Entry…对话框,分别添加CMAKE_SYSROOT和OE_QMAKE_PATH_EXTERNAL_HOST_BINS变量,分别指向之前创建的rootfs目录和Windows下安装的QT目录。
4. 点击Configure,之后Generate,完整的输出格式如下:
5. 启动DOS窗口,cd到build目录,执行make,执行结果如下,可以看到QT应用程序被正确编译。
6. 最后,我们使用file工具检查生成的目标文件untitile属性,可以看到确实为ARM32可执行程序。编译环境验证完成。
【直播预告】