ZYNQ平台在SDK下引导启动UBOOT

3 篇文章 1 订阅

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阶段即可。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值