症状:当我从 IDE 中选择“程序闪存”菜单时,它开始工作,但在随机点上失败。有时它会成功擦除闪存,有时会更早地失败(请参阅下面的日志)。
历史:它工作了数周。当我上传我的程序时,它正在运行,将内容打印到 UART 端口。然后,美好的一天,闪烁停止了。我试过了,但它打印出各种错误。第二天它再次工作(没有任何修复),但只有 2-3 天,然后永远停止工作。
诊断:在 Vivado 中,我可以看到设备,它看起来很健康。我检查了.bat
脚本,他们设置了环境,最后调用rdi_zynq_flash.exe
了负责整个刷写过程的 (使用本地主机上的服务器)。从这一点来看,我没有机会知道引擎盖下到底发生了什么。我在玩这个XSCT
工具,但我不知道我应该检查什么。
配置:
- 板:Xilinx Zynq 7000、ZC702
- IDE:Vivaldo 2020.1,在 Windows 10 上
- 程序类型:独立(非 Linux),仅 ARM 代码,不使用 FPGA
- 编程模式:QSPI(开关4打开,其他关闭)
错误是:
- 无法识别的 JEDEC id 字节:10、01、00
- 无法识别的 JEDEC id 字节:68、03、00
- 读取启动模式寄存器失败
- 错误:闪存操作失败
- zynq_qspi_irq_poll:超时
有关更多详细信息,请参阅完整日志。