VIVADO2017.4无法下载QSPI解决方案

QSPI FLASH 下载,分析说明。
从官方的文档中,经过分析和实际操作,总结以下信息。
(1)“指定fsbl”文件修改
根据文档说明,从VIVADO 2017.3版本开始,Xilinx官方为了使Zynq-7000和Zynq UltraScale +实现流程相同,在QSPI FLASH使用上做了变化,即Zynq-7000编程flash需要“指定的fsbl”。这个fsbl用于初始化系统(主要是运行ps7_init()函数)。
通过分析可知下载QSPI FLASH 的“指定的fsbl”文件与生成boot.bin文件的fsbl文件不同,这里不能混淆。
QSPI编程要求器件以JTAG模式启动。(因为在QSPI引导模式下启动,则“指定的fsbl”将尝试从flash加载分区,从而导致flash编程的错误行为。导致不能下载flash或下载flash后不能启动。)官方给出了修改方法,通过在“指定的fsbl”中的main.c中如下位置添加如下语句,防止FSBL在编程运行时从Flash设备加载任何现有分区。
/*

  • Read bootmode register
    */
    BootModeRegister = Xil_In32(BOOT_MODE_REG);
    BootModeRegister &= BOOT_MODES_MASK;
    //add this line to trick boot mode to JTAG 添加的语句
    BootModeRegister = JTAG_MODE;

(2)环境变量修改
VIVADO 2018.1不要设置环境变量。
VIVADO 2017.3,VIVADO 2017.4版本下载QSPI FLASH需要设置环境变量。
变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ
变量值:10000000
这么做的目的是这将强制mini-uBoot将QSPI器件时钟设置为10 MHz(根据您的FSBL设计,您可能会在硬件上看到不同的QSPI时钟)。

QSPI FLASH下载,操作说明。
软件版本:VIVADO 2017.4
开发板:MIZ7035(xc7z035-ffg676)
(1) 新建环境变量
计算机à属性à高级系统设置à高级à环境变量à新建系统变量
变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ
变量值:10000000

(2) 生成BOOT.BIN文件
加载到SDK
新建fsbl工程,FileàNewàApplication Project,输入fsbl,点击Next。
选择Zynq FSBL,点击Finish
选择Create Boot Image。
单击打开bootimage,生成的BOOT.bin文件。

(3) 生成加载QSPI FLASH的fsbl文件
新建一个新的FSBL文件,命名为fsbl_load

打开fsbl_load的main.c文件,增加“BootModeRegister = JTAG_MODE; ”保存并编译。

(4) 下载
模式开关切换到QSPI启动模式(1-ON ,2-OFF)。
单击 Program Flash Memory
加载刚才生成的BOOT.BIN文件和fsbl_load文件,单击Program。

断电,重新打开电源,开发板加载QSPI flash。

参考链接:
1、 https://www.xilinx.com/support/answers/70548.html (Xilinx Answer 70548)
2、 https://www.xilinx.com/support/answers/70148.html(Xilinx Answer 70148)

猜你喜欢

转载自blog.csdn.net/weixin_42418557/article/details/88723603