说明
在使用SDK调试Zynq时,偶尔会出现下载进度条卡在99%不动的情况,如下图所示,可以看到是卡在'rst-system'这一步

如果点击红色的停止图标,强行停止,则会出现以下弹窗,我们只能选择点击“OK”或者关掉弹窗

尴尬的事情来了,如果你再尝试下载程序,会发现进度条会卡死在57%,如图可知在连接127.0.0.1:3121

点击停止图标,会弹出以下弹窗,显示连接到127.0.0.1的接口3121失败

此时再也无法连接到下载器,更别说下载程序,即使重启Vivado、SDK也无法解决问题
解决方法
连接不到下载器,无法下载其实是由于hw_server程序卡死导致的,在任务管理器中找到hw_server.exe进程,然后右键结束任务,即可解决(也可下载文末的脚本,双击即可运行脚本重启hw_server.exe进程)

猜测
笔者是在调试一个带system ila的工程时,遇到的这个问题,SDK那边在下载程序的同时,Vivado这边也开启了Hardware Manager分析ila的波形,在这种情况下,Vivado不断通过hw_server程序下载器通信,同时SDK也控制hw_server将编译好的文件下载到Zynq开发板,也许是SDK与Vivado在某种情况下产生了争执,导致hw_server程序卡死了,之所以重启Vivado和SDK仍然无法连接到下载器,是由于卡死的程序并不是它俩,而是hw_server,所以我们要修复连接不到下载器的问题,重启hw_server程序即可。
以上只是本人的一点猜测,并没有实际验证,欢迎大家指正。
附件
以下为重启hw_server的脚本,双击运行脚本即可重启hw_server |