对于特定的硬件平台(开发板),petalinux可以通过下载官方BSP来直接创建文件,可以省去很多麻烦。但是在实际运用中,不可能只是从BSP生成,现在我们开始创建一个自定义的工程。
1,在Vivado上创建硬件平台,生成*.hdf文件。(我的Vivado安装在Window下);
Create Block Design
Create IP
根据UG1144中对硬件的要求设置IP(默认就行)
Generate output products -->Create HDL Wrapper -->Generate Bistream -->Export Hardware
2,在linux中创建一个工程目录,我的放在桌面上
$ cd ~/Desktop/ $ mkdir petalinux_proj
$ cd ~/Desktop/petalinux_proj/ $ petalinux-create --type project --template zynq --name my_first_proj INFO: Create project: my_first_proj INFO: New project successfully created in /home/zhupy/Desktop/petalinux_proj/my_first_proj
4,将步骤1中生成的hdf文件从windows中拖拽到my_first_proj这个文件夹中。
5,导入硬件配置文件
$ cd ~/Desktop/petalinux_proj/my_first_proj/ $ petalinux-config --get-hw-description=./ #这里的./是hdf文件的存放位置

设置项的内容直接默认,save后退出。(细节可以参考UG1144的附录B和附录C)开始config。。。。完成后出现以下信息:
[INFO] generating u-boot configuration files [INFO] generating kernel configuration files [INFO] generating kconfig for Rootfs Generate rootfs kconfig [INFO] oldconfig rootfs [INFO] generating petalinux-user-image.bb
此时在你的~/Desktop/petalinux_proj/my_first_proj/project-spec/hw-description文件目录下,可以看到:
$ ls config.project ps7_init_gpl.c ps7_init.html system_wrapper.bit metadata ps7_init_gpl.h ps7_init.tcl ps7_init.c ps7_init.h system.hdf6, 生成镜像文件此时,你的工程目录内多出一个images文件夹
$ cd ./images/linux/ $ ls image.ub rootfs.ext4 system.dtb vmlinux rootfs.cpio rootfs.ext4.gz System.map.linux zImage rootfs.cpio.gz rootfs.jffs2 system_wrapper.bit zynq_fsbl.elf rootfs.cpio.gz.u-boot rootfs.manifest u-boot.bin rootfs.ext3 rootfs.tar.gz u-boot.elf
里面就是我们所需要的。
7,因为我的linux系统中没有安装Vivado,所以不能用petalinux-package命令,需要把以下四个文件拷贝到windows中备用
8,在Windows中打开SDK Xilinx-->Create Boot Image,按顺序加入 zynq_fsbl.elf--->IFC_TOP_wrapper.bit--->u-boot.elf 三个文件。点击 Create Image 按钮,生成BOOT.bin文件
9,将生成的BOOT.bin和之前拷贝的image.ub复制到SD卡上
10,将SD卡插入开发板上电,打开Putty,参数设置如下:
11,查看putty上的log信息:
liunx成功跑起来了。。。。