作者:Hello,Panda,来源: ZYNQ分享客微信公众号(ZYNQfenxiangke)
前几天聊天聊到在Linux系统下调用SDK的gnu交叉编译工具链的问题,Panda同学是这么做的,简单写几句分享一下。按照正常套路,我们会专门下载第三方交叉编译工具链进行Xilinx器件的Linux开发(工具链获取:git clone https://github.com/xupsh/Codesourcery.git )。但是,Xilinx在其SDK下集成了交叉编译工具链,如果安装了Vivado套件还要去第三方下载的话,就显得有些多余。假如当前为Vivado2019.1版本,则位于目录/SDK/2019.1/gnu下,我们只需要以下两步进行调用。
(1)Source工具链
在使用前,source SDK目录下的settings64.sh文件;
(2)添加工具链
按照Xilinx Wiki上的说明,命令如下:
a)Zynq:
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
b)ZynqUS+:
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=aarch64
c)Microblaze:
export CROSS_COMPILE=microblazeel-xilinx-linux-gnu-
export ARCH=microblazeel
通常的,如果报类似于某个目标找不到的错误(不同的系统可能不太一样),示例如下:
/bin/sh: 1: cc: not found
scripts/Makefile.host:97: recipe for target 'scripts/basic/fixdep' failed
make[1]: *** [scripts/basic/fixdep] Error 127
Makefile:415: recipe for target 'scripts_basic' failed
make: *** [scripts_basic] Error 2
大多是依赖库缺失导致,安装以下依赖程序:
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
sudo apt-get install bison
sudo apt-get install flex
一般可以解决。
(3)编译zc702的uboot示例
make distclean
make zynq_zc702_defconfig
make
在编译内核时,如果提示找不到mkimage命令,则安装以下依赖:
sudo apt-get install u-boot-tools