ZYNQ学习之路13.创建PetaLinux工程

本文指导如何在Ubuntu环境中配置PetaLinux及Vivado,针对米尔科技Zturnboard创建Linux启动工程,涉及硬件设置、PetaLinux工程创建、驱动配置与验证,以及常用命令详解。

前面的学习中,我们知道如何根据PetaLinux BSP设计去创建一个工程,现在,我们结合Vivado设计我们自己PetaLinux系统。

开发环境:Ubuntu16 64bit, PetaLinux 2018.2, Vivado 2018.2

硬件环境:米尔科技Zturn board(XC7Z010)

一、配置硬件环境

1.1 创建硬件工程

Zynq-7000运行嵌入式Linux系统要求至少包含以下硬件外设:

  1. 一个Triple Timer Counter(TTC)
  2. 至少32MB内存
  3. 串口,用于终端输入输出
  4. 非易失存储器(QSPI Flash, SD/MMC)
  5. 以太网(可选)

根据之前系列教程使用vivado创建一个能启动Linux系统的工程ZYNQ学习之路1.Linux系统从零开始建立

编译综合后,生成hardware description file(.hdf),Petalinux根据此文件进行初始化PetaLinux工程。

将工程目录下的<project name>.sdk/<top module name>_hw_platform_0文件夹拖到Ubuntu虚拟机中。

1.2 创建PetaLinux工程

使用petalinux-crete工具创建一个基本的工程文件夹:

$ petalinux-create --type project --template <TEMPLATE> --name <PROJECT>

 参数意义:

  • --template CPU_TYPE——支持的CPU类型,zynqMP, Zynq和MicroBlaze
  • --name NAME——创建的工程名

本例命令:

$ petalinux-create --type project --template zynq --name ZturnTemplate

 创建成功后,工程中有一个文件和一个配置文件。

ubuntu:~/workspace/petalinux$ ls ZturnTemplate/
config.project  project-spec

 导入硬件描述文件

$ cd ZturnTemplate/
$ petalinux-config --get-hw-description=../ZturnHW/system_wrapper_hw_platform_0

因为是新创建的工程,我们会进入一个配置界面,在这里需要配置一些系统参数,包括:启动方式,启动存储分区表,启动文件名称等。本例程从SD卡启动系统,所有的配置默认即可。

退出时保存设置,开始自动配置系统。

配置成功后将生成PetaLinux工程的文件组件。

最后编译工程:

$ petalinux-build

 1.3 配置工程的组件

虽然在开发板中,linux系统可以正常启动,但是,有些自定义设计的外设驱动可能无法适配,比如网卡,FLASH等,这时候就需要用到petalinux的配置工具。

进入工程目录下:

$ cd <plnx-proj-root>

 启动顶级系统配置菜单

$ petalinux-config

启动uboot配置菜单

$ petalinux-config -c u-boot

 启动linux内核配置菜单

$ petalinux-config -c kernel

 启动文件系统配置菜单

$ petalinux-config -c rootfs

 在直接使用默认配置时,在Zturnboard启动是显示找不到网卡.

Net:   ZYNQ GEM: e000b000, phyaddr ffffffff, interface rgmii-id
PHY is not detected
GEM PHY init failed
No ethernet found.

该阶段是Uboot阶段,所以进入uboot配置菜单。开发的网卡芯片型号是KSZ9031,是micrel公司生产的,所以uboot和kernel配置中都需要配置对其支持。

打开<plnx-proj-root>/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h文件,在第一行代码下添加宏定义:

#include <configs/platform-auto.h>
#undef CONFIG_PHY_MARVELL
#define CONFIG_PHY_MICREL

 首先配置u-boot:

$ petalinux-config -c u-boot
Device Drivers  --->
-*- Ethernet PHY (physical media interface) support  --->
[*]     Micrel Ethernet PHYs Support
[*]         Micrel KSZ90X1 family support

然后配置kernel:

$ petalinux-config -c kernel
Device Drivers  --->
[*]  Network device support --->
        Ethernet driver support  --->
[*]          Micrel devices  
-*-     PHY Device support and infrastructure  --->
<*>          Micrel PHYs

 修改了配置之后必须重新编译

$ petalinux-build

1.4 创建启动文件

编译完成后生成可以启动的镜像文件。

生成内核文件:

$ petalinux-package --image -c kernel --format uImage

 生成启动文件:

$ petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot
FSBL image:fsbl文件在./images/linux中
FPGA bitstream:bit文件在./images/linux中

执行完这些命令后,在工程目录下会生成BOOT.BIN文件。

首先可以在QEMU中验证软件系统的正确性:

$ petalinux-boot --qemu --kernel

 启动成功消息如下:

图1-1 QEMU启动ZturnTemplate

使用特定的DTB启动:

$ petalinux-boot --qemu --image ./images/linux/zImage --dtb ./images/linux/system.dtb

当Linux系统被创建好之后并且测试成功,下一步就是制作启动镜像。

zynq-7000启动需要FPGA的bitstream文件,fsbl文件,uboot.elf文件以及image.ub文件。使用以下命令制作BOOT.bin启动文件。

$ petalinux-package --boot --format BIN --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/system.bit --u-boot

在./images/linux文件夹中生成BOOT.BIN文件。

将BOOT.BIN,image.ub拷贝到FAT格式的SD卡中,插入Zturnboard开发板启动之。

二、PetaLinux常用命令

2.1 编译镜像

编译工程:petalinux-build

生成uImage: petalinux-package --image -c kernel --format uImage

生成Boot镜像:petalinux-package --boot --fsbl --fpga --u-boot

打包预建镜像:petalinux-package --prebuilt --fpga

在当前目录下生成pre-built文件夹,该文件夹下包含了Zynq-7000启动Linux所需要的文件。

2.2 下载调试

使用预建镜像启动QEMU:

petalinux-boot --jtag --prebuilt <BOOT_LEVEL>
level 1:下载FPGA比特流
level 2:下载FPGA比特流并启动boot程序
level 3:下载FPGA比特流,FSBL启动u-boot和Linux内核

在QEMU中启动:

petalinux-boot --qemu --prebuilt 3

使用JTAG在硬件中启动镜像:

环境要求:连接JTAG并安装Linux的驱动程序

2.3 BSP打包

在PetaLinux工程的上一级目录中运行命令。

petalinux-package --bsp -p <plnx-proj-root> --output MY.BSP

这里MY.BSP将会包含以下内容:

  • <plnx-proj-root>/project-spec/
  • <plnx-proj-root>/config.project
  • <plnx-proj-root>/,petalinux/
  • <plnx-proj-root>/pre-build/
  • 所有选择的组件

参考资料

[1] ug1156-petalinux-tools-workflow-tutorial.pdf

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值