美文网首页
ZYNQ平台在SDK下引导启动UBOOT

ZYNQ平台在SDK下引导启动UBOOT

作者: QUIZ_JS | 来源:发表于2018-09-21 22:33 被阅读0次

    ZYNQ芯片+Linux系统搭建完成后,希望通过QSPI-Flash的方式来进行程序加载。
    QSPI-Flash启动则需要烧录以下文件:

    BOOT.bin : fsbl.elf + uboot.elf
    uImage : linux内核
    zynq_board.dtb : zynq平台的设备树
    uramdisk.image.gz : 文件系统
    design.bit : FPGA程序比特流文件(注意:在第二种烧录方法中需要使用design.bin文件

    准备完成之后,将这些文件烧录到QSPI Flash中有两种方法:

    1、以上5中文件在SDK中直接制作成一个BOOT.bin,通过JTAG直接烧录到Flash中。
    缺点:一旦程序需要更新,尤其是其中一种程序需要更新,都要一起重新生成bin文件,繁琐耗时。
    2、通过SDK引导启动UBOOT,然后通过UBOOT中的tftp和sf命令将以上5个文件分区烧录到Flash中。

    本文主要记录如何通过SDK来引导 UBOOT,后续章节将会详细介绍Flash如何分区且如何通过tftp和sf命令进行烧录。
    首先将VIVADO生成的bit文件导入到SDK中如下图所示



    启动SDK后,在SDK中启动XMD控制中心



    然后将开发平台串口接入PC,因为在SDK中引导uboot后,在uboot启动过程中将会把打印信息通过串口输出。
    完成以上操作之后,在XMD控制中心输入一下命令:
    connect arm hw
    cd   D:/project_1/project_1.sdk/Top_hw_platform_0(根据自己生成的文件目录)
    fpga -f fpga.bit(**根据自己实际情况,如果你的串口使用了EMIO则必须要首先启动FPGA程序,否则后续无法进行串口打印**)
    source ps7_init.tcl
    ps7_init
    dow u-boot.elf
    con
    

    之后可以看到uboot开始启动,并在串口进行打印。

    调试中的问题记录:

    1、通过第2中方法将程序烧录到flash中需要注意fpga程序需要使用bin文件。
    2、出现过串口不打印的现象是由于使用EMIO则必须要在xmd控制中心加载fpga程序
    3、出现过网口不通的现象是由于zynq的硬件配置时没有将网络的相关管脚全部勾选。
    4、在ps_init过程中出现MMU section translation fault 主要是由于自己已经烧录的linux内核已经启动,应该将原来烧录的停在uboot阶段即可。

    相关文章

      网友评论

          本文标题:ZYNQ平台在SDK下引导启动UBOOT

          本文链接:https://www.haomeiwen.com/subject/cfgznftx.html