1、问题描述
最近用ZYNQ7做开发,遇到一个悬乎的问题。PS代码debug模式下一切正常,固化到flash后,从flash启动,一开始都一切正常,后来突然发现上电后,PL正常加载,而PS却不启动了。这个问题困扰了很久,想了很多办法,都没用。
2、解决办法
网上相关信息找遍了,没有答案。有一篇文章提到过一点,就是将库的stdin和stdout关闭。如下图所示。参见https://blog.youkuaiyun.com/u013184273/article/details/135496093
但实际也没完全解决该问题。最后灵机一动,发现了一种在线调试方式,就是将代码固化到flash以后,连着JTAG,然后重新上电从FLASH启动,加载完成后,SDK会自动连上并跳转到调试界面。通过该方式,最终定位到问题所在。实际上,PS代码是正常启动了,但是在调用snprintf和sscanf这两个函数时,代码进入未定义异常中断死循环,如下图所示。最后不得已,自己重写了snprintf和sscanf这两个函数,然后一切正常。