本文介绍一种通过 Petalinux 制作的根文件系统,在 Windows 平台下建立交叉编译环境的方法。并使用简单的 QT 程序验证工具链环境。
文中可能用的软件工具包括 Wsl2-ubuntu,Petalinux 以及 AMD Vivado™ Design tool,AMD Vitis™ Software platform 等。
制作步骤:
1.创建基于的 Vivado 工程,创建 Block Design,加入 AMD Zynq™ SoC 模式,导出 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
packagegroup-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/<windows host drive>/rootfs
cp -rfL usr/<windows host drive>
/rootfs
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 下的交叉编译环境即创建完成。AMD ZYNQ™ UltraScale+™ MPSoC 和 AMD Versal™ Adaptive SoC 的原理同上。
测试结果
我们在 Windows 平台基于 CMake 工具,使用以上创建的交叉编译工具链,编译一个简单的 QT 工程实例。
1.运行 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 可执行程序。编译环境验证完成。
请点击阅读原文查看相关附件。
AMD 自适应 SOC 及 FPGA 中文技术支持社区