ZYNQ flash在QSPI模式下不能下载,下载后不能正常运行
在AR# 70548文档介绍:烧写FLSASH尽管强烈推荐使用JTAG引导模式,但是对于以QSPI模式启动的设备有一个解决方案:
新建在FSBL工程(新建,和之前用来生成BOOT.BIN用的fsbl.elf不是同一个)mian.c文件中main函数383行后面增加BootModeRegister = JTAG_MODE; (位置不要放错,其他函数也有类似的位置)。编译成又一个FSBL_Loader.elf文件。这个是用来下载的,之前那个是用来合成BOOT.BIN的。
在FSBL工程fsbl_debug.h文件中53行后面增加#define FSBL_DEBUG_INFO 可在串口查看fsbl运行状态。
刚开始发现每次下载前要重新上电才能下载成功。后来发现好像没必要。
下载的时候把两个校验勾选上。我刚开始没勾选,如果硬件有问题也能下载成功了但是不能正常运行。
XILINX 官网的两个问答记录:
AR# 70548
QSPI模式下下载程序失败:
Initialization done, programming the memory
BOOT_MODE REG = 0x00000001
WARNING: [Xicom 50-100] The current boot mode is QSPI.
尽管强烈推荐使用JTAG引导模式,但是对于以qspi引导模式启动的设备有一个解决方案。
从2017.3开始,为Zynq-7000编写flash需要指定一个FSBL。参见(Xilinx回答70148)。
如果在QSPI引导模式下启动,这个FSBL将尝试