前言

经过很多天的摸索尝试各种方法,最后在自己的脑海中有了一个大体的思路。之前尝试过直接用xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件去安装,安装完成后是可以在terminal中得到arm-xilinx-linux-gnueabi-gcc的版本,也可以用来编译,但是从xilinx官网上下载内核,u-boot下载老是不成功,也就放弃了。后来又尝试使用SDSoc,SDSoc的第一步搭建平台就没有成功过,我的硬件平台是MicroZed7020的芯片,所以就失败了。最后看到Petalinux tool,就按照UG1141(v2015.2)文档一步步去尝试,中间也有很多困难,但是最后是成功了,其中还有个小插曲,就是我的TF卡被我搞丢了,所以这里也费了些功夫把内核等放到flash中去运行。不过这边文章是通过SD卡启动的。


实验平台

Windows: WIN7 64位,VIVADO 2015.2,SDK 2015.2
Ubuntu:Ubuntu 16.04,Petalinux Tool
硬件平台:Microzed 7020,SD卡启动

安装依赖包

需要的东西:
1.ubuntu16.04
2.petalinux-v2015.2.1-final-installer.run文件

需要安装的依赖包

sudo apt-get install tofrodos
sudo apt-get install iproute
sudo apt-get install gawk
sudo apt-get install gcc
sudo apt-get install git-core
sudo apt-get install make
sudo apt-get install net-tools
sudo apt-get install ncurses-dev
sudo apt-get install libncurses5-dev
sudo apt-get install tftpd
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install lib32z1
sudo apt-get install lib32ncurses5

按照UG1141(v2015.2)文档安装lib32bz2-1.0这个库的时候会出错

sudo apt-get install lib32bz2-1.0

这里写图片描述
所以这里要更换成libbz2-1.0:i386安装

sudo apt-get install libbz2-1.0:i386

这里写图片描述
把剩下的装完

sudo apt-get install lib32stdc++6
sudo apt-get install libselinux1

总结一下需要安装的依赖包有一下,可以直接复制下面的进行安装:

tofrodos iproute gawk gcc git-core make net-tools ncurses-dev libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison lib32z1 lib32ncurses5 libbz2-1.0:i386 lib32stdc++6 libselinux1

安装PetaLinux

修改dash->bash(如果需要)

先查看当前状态

ls -l /bin/sh

结果是

 /bin/sh -> dash

我们会发现Ubuntu默认采用的是 dash
如果要修改默认的sh,可以采用命令

sudo dpkg-reconfigure dash

然后选择【否】
成功后再执行ls -l /bin/sh 看看
结果是: /bin/sh -> bash
修改成功!

安装PetaLinux 2015.2
sudo mkdir /opt/pkg

新建文件夹用来安装

cd /tmp

定位到有安装文件的文件夹中

sudo ./petalinux-v2015.2.1-final-installer.run /opt/pkg

将安装包安装到目标文件夹
如果上面的依赖包都安装完成的话,那应该可以顺利安装完成

通过VIVADO创建硬件平台

新建工程

打开vivado 2015.2,新建工程
这里写图片描述
这里写图片描述
这里选择microzed 7020的板子
这里写图片描述
如果Board里没有这个选项的话就选择与板子相对应的7020的芯片
这里写图片描述

配置芯片以及外设

在左侧选择Create Block Design
这里写图片描述
这里写图片描述
新增一个IP
这里写图片描述
增加ZYNQ这个IP
这里写图片描述
点击Run Block Automation
这里写图片描述
之后双击IP模块,进行配置
配置完成之后对.bd文件右键Generate Output Products
这里写图片描述
在次右键选择Create HDL Wrapper
这里写图片描述
选择Generate Bitstream
这里写图片描述
最后在File->Export->Export Hardware
这里写图片描述
最终生成了.bit文件跟.hdf文件
这里写图片描述
这里写图片描述

PetaLinux新建工程

在根目录新建一个文件夹用来存放工程文件

sudo mkdir /Petalinux_Project  

修改权限777

sudo chmod 777 /Petalinux_Project

进入到这个目录下

cd /Petalinux_Project 

再新建一个mz_hdf文件夹用来存放.hdf文件,把刚才生成.hdf文件放到这个文件夹底下

sudo mkdir mz_hdf 

这里写图片描述
保证当前目录是/Petalinux_Project
配置环境变量:

source /opt/pkg/petalinux-v2015.2.1-final/settings.sh  

这里写图片描述
创建新工程名叫my_project

petalinux-create --type project --template zynq --name my_project

这里写图片描述
这时在工程文件夹底下就会出现新建的工程,将路径定位到到刚才新建的my_project文件里面
这里写图片描述

导入硬件配置

petalinux-config --get-hw-description=/Petalinux_Project/mz_hdf

这里写图片描述
这里可以取消tftpboot
这里写图片描述
这里写图片描述
这里写图片描述

配置内核,根文件系统

一般来说什么都不需要改

petalinux-config -c kernel

这里写图片描述
配置根文件系统,暂时默认

petalinux-config -c rootfs

这里写图片描述

编译以及启动

编译u-boot,kermel,rootfs,第一次编译比较长时间

petalinux-build

这里写图片描述
没有出错,编译成功,如下所示
这里写图片描述
这时我们可以在my_project/images/linux下看到我们编译好的文件
这里写图片描述
将这个文件夹下的u-boot.elf,zynq_fsbl.elf以及image.ub拷到window下,新建个文件夹叫做sd image。再把之前vivado生成的.bit文件同样放进来。打开SDK,选择xilinx tools->Create Zynq Boot Image
这里写图片描述
把sd image下的u-boot.elf,zynq_fsbl.elf,mz7020_base.bit文件按照如下的顺序放置
这里写图片描述
然后生成boot.bin
将boot.bin 跟image.ub拷到TF卡,上电microzed板,通过串口查看打印信息,登录名跟密码都是root
这里写图片描述
成功启动

总结

1.关于在VIVADO中ip的配置将会在另一片文章中说明,这里篇幅太长就不加入了
2.相关的文件可以再这里下载:链接:https://pan.baidu.com/s/1dospsRArIlMv-h3LcovNwA 密码:yqsj
3.有问题可以留言或者发邮件到839089604@qq.com

Logo

更多推荐