1.简介
zynq是xilinx推出的一款集成arm核以及fpga可编程逻辑器件的soc芯片,使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点。zynq主要分为两端,首先是pl端,属于像fgpa开发一样的纯逻辑开发。然后是ps端,我把它类比成是单片机的裸机开发,通过操作库函数配置寄存器等,它的优势是可以将pl端当成是外设,pl端写好的东西可以被ps端直接调用。然后ps端是属于arm-A核,是可以跑系统的(linux等)。
在zynq的linux开发端,官方提供了一个名为petalinux的工具,该工具运行在pc的linux环境下(如ubuntu),使用这个工具可以为我们的开发板量身定制Uboot、kernel、rootfs。该解决方案旨在提高设计生产力,可与 Xilinx 硬件设计工具一起使用,以简化针对 Zynq-7000 SoC 的 Linux 系统的开发。
zedboard开发板如图所示
移植linux系统分为两种方式
1.传统方式移植Linux
2.用petalinux快速定制linux系统
本文使用第二种方法来搭建zedboard开发板的环境
PetaLinux 工具提供在 Xilinx 处理系统上定制、构建和调配嵌入式 Linux 解决方案所需的所有组件。该解决方案旨在提升设计生产力,可与 Xilinx 硬件设计工具配合使用,以简化针对 Versal®、Zynq® UltraScale+™ MPSoC、Zynq®-7000 SoCs、和 MicroBlaze™ 的 Linux 系统开发。
1安装petalinux工具
petalinux工具安装首先需要准备VMware、和ubuntu。petalinux对ubuntu的版本有很严格的要求具体请参考xilinx官网的UG1144资料。本文安装的是petalinux2019.1是在ubuntu16.04.6下安装的。下面附上下载地址:
ubuntu下载做嵌入式的小伙伴应该都知道去官网下载下图.iso文件
petalinux2019.1下载:Downloads
下载完成后还需做几步准备
1.在你的ubuntu安装必要的安装包。
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y flex bison build-essential libssh-dev gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib zlib1g:i386 screen pax gzip gawk
2.将终端shell类型切换
sudo dpkg-reconfigure dash
之后弹出对话框选择 no
3.将下载的petalinux2019.1放进创建在虚拟机的文件夹里(注意:创建的文件夹的权限一定是用户权限不能是root权限)
mkdir -p /opt/pkg/petalinux
chmod 755
/opt/pkg
chmod 755
/opt/pkg/petalinux
4.在如上创建的文件夹里打开终端运行安装包
./petalinux-v2019.1-final-installer.run
5.等待.run安装包的校验,提取,然后会出现许可文件的阅读,按enter阅读,按q退出,按y接受(反复操作3次enter, q, y;共有三个文件需要接受).
6.安装完成后开始设置环境变量
source /opt/pkg/petalinux/settings.sh
7.因为每次使用PetaLinux时候都要执行环境变量的设置,所以直接设置为打开终端时候自动执行上述环境变量。
echo 'source /opt/pkg/petalinux/settings.sh'>>~/.bashrc
设置完成后每次打开终端如下图所示:
8.检查安装是否完成输入petalinux-按tab键
有如下效果表示安装完成
9.去xilinx官网下载bsp文件,将该文件放进虚拟机里,作者是将该文件放在之前petalinux文件夹下
重新创建的一个子文件夹里
下载地址:Downloads
9.然后创建工程
创建工程有两种方式:
zedboard开发板属于 zynq类型的
1.petalinux-create -t project -n <工程名字> --template <芯片类型有:zynq zynqMP microblaze>
第一种方式 .hdf文件或者.xsa的描述硬件文件后续步骤就不详细介绍了本文主要介绍第二种方式
2.petalinux-create -t project -s <.bsp的文件 就是上述下载的 ZED BSP>
10.配置内核
petalinux-config -c kernel
注意:一定讲linux窗口放大 否则有可能因为窗口太小弹不出配置界面,弹出配置界面(通过键盘进行操作,基本操作就是上下左右移动光标,回车选择,ESC键按两下表示返回),这里直接保存退出 默认配置。
11.配置跟文件系统
petalinux-config -c rootfs
也默认配置不做更改直接保存。设备树可以不用配置也能启动内核所以本文不配置设备树。
12.编译工程
petalinux-build
经过漫长的等待有如下如图代表配置成功
13.生成BOOT.bin文件
petalinux-package --boot --fsbl --fpga --u-boot --force
BOOT.BIN 文件是 fsbl 镜像、 u-boot 镜像以及 pl 端 bit 文件集合在一起的。
13.进入工程目录images/linux下,将image.ub和BOOT.BIN拷贝到sd卡的fat32格式分区中
将sd插入开发板将跳线设置成sd卡启动账户和密码均为root,这样就完成了。