现象:
在调试板卡时,使用sf erase 0x0 0x2000000 命令误将flash全部擦除,擦除后使用JTAG刷写BOOT.bin时卡住,更换vivado2015、vivado2016、vivado2018均不能正常烧写flash。但通过JTAG Debug程序没有问题。
通过下面方法无意中解决:
1)vivado2018创建xqspips_flash_polled_example例程,debug运行,程序正常,串口有输出;
2)刷写工程的bit文件;
3)修改fsbl main.c中BootModeRegister = JTAG_MODE;
4)制作BOOT.bin,烧写,这时候就能写进去了;
5)重启,这时候因为是JTAG模式,是起不来的;
6)修改fsbl删除BootModeRegister = JTAG_MODE,改回QSPI模式;
7)再次生成BOOT.bin,重新烧写,可以了。