Windows下交叉编译环境的制作

作者: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根文件系统.png

进入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/ <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的环境变量

环境变量.png

12. 至此,在Windows下的交叉编译环境即创建完成 。MPSoC 和Versal的原理同上。

 测试结果

我们在Windows平台基于CMake工具,使用以上创建的交叉编译工具链,编译一个简单的QT工程实例。

  1. 运行CMake,Source Code选择附件中的sw目录,Where to build the binaries选创建的build目录,点Configure,弹出的对话框配置如下

对话框配置.png

2. 点Next,Specify the Toolchain file选择附件中的zynq-linux-toolchain.cmake文件,点Finish  

文件1.png

3. 点击Create Entry…对话框,分别添加CMAKE_SYSROOT和OE_QMAKE_PATH_EXTERNAL_HOST_BINS变量,分别指向之前创建的rootfs目录和Windows下安装的QT目录。

文件2.png

文件3.png

4. 点击Configure,之后Generate,完整的输出格式如下:   

文件4.png   

5. 启动DOS窗口,cd到build目录,执行make,执行结果如下,可以看到QT应用程序被正确编译。 

文件5.png   

6. 最后,我们使用file工具检查生成的目标文件untitile属性,可以看到确实为ARM32可执行程序。编译环境验证完成。

文件6.png         

最新文章

最新文章