【ZYQN杂记】QSPI Flash固化失败 报Blank Check Operation unsuccessful. The part is not blank错误 一种解决办法
摘要:在ZYNQ7035上测试CANFD IP核时,遇到QSPI Flash擦除失败问题(提示"The part is not blank")。经过反复检查硬件配置无果后,通过添加系统变量XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ并设置值为10000000,重启Vivado后成功解决问题。实测表明仅需重启Vivado即可,无需重启整个系统。该解决方案参考自C
现象
最近想在ZYNQ7035上尝试can fd IP核,准备新建工程,简单测试一下
忙活完芯片、ddr型号选定、外设使能、引脚分配、bd设计后,综合、实现、导出bit流、生成SDK,一通行云流水操作后,导入canfd 官方测试例程“xcanfd_polled_example”
编译、生成boot.bin、下载,本来应该一遍过的事情,突然又卡住了,提示qspi flash擦除检查失败,出现如下提示:
Blank Check Operation unsuccessful. The part is not blank.
ERROR: Flash Operation Failed
详细过程为:

因为是新建工程,使用新的硬件开发板,怀疑是我的硬件配置出错
反复检查启动模式、引脚分配、器件类型有没有错、外设时钟,重新生成了好多次硬件 并尝试下载,均未能成功
后来还是看到CSDN别人的帖子,按照它的方法才成功解决
解决办法
在系统变量中添加如下变量
| 变量名(N) | XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ |
|---|---|
| 变量值(V) | 10000000 |
添加完系统变量后,重启Vivado后,问题成功解决

后记
参考链接中提到添加完系统变量后重启系统,经过实测,仅需重启Vivado即可解决问题
同样的开发环境,同版本的Vivado之前开发ZYNQ 7020的时候,就没有因为缺少这个环境变量导致固化不成功,换到7035就有这个问题了。刚好我的开发板刚拿到手的时候里面烧录的是ubuntu的系统,不知道是不是liunx系统和裸机开发使用的uboot不一样导致的?但是我第一次烧录成功后,再次删除系统中的 XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ 变量,还是依然不能烧录,仍然是blank check 失败的提示,不太明白,如有大佬知道,可以顺道帮我解答一下 :P
参考
【CSDN】vivado 2017.4 烧写失败 Blank Check Operation unsuccessful. The part is not blank
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)