目录
问题描述
在第一次使用AX7103这块黑金的板子,打算先做个helloworld的串口打印实验来验证板子的可行性,在创建工程BD如图所示,很简单的一个uart打印实验。添加约束文件并生成比特流文件后,将硬件信息导入到SDK中,并新建一个新的工程,直接调用helloworld模板就可以了,于是出现了如标题所示的报错。
不能停止MicroBlaze,MicroBlaze处于复位状态。
调试过程
以下时我的调试过程:
1、之前做的MicroBlaze的实验,有出现的情况是供电电压过小的问题,进而导致MicroBlaze一直处于复位的状态,换了一个功率更大的供电器,但是还是一样的问题。
2、重新查阅AX7103的使用手册,发现时钟是差分时钟,并且是输入是200Mhz输出是100Mhz,于是在BD中重新设定参数,并在约束文件中重新修改。但是重新烧录程序启动时还是出现一样的问题。
3、想着既然是一致处于复位,于是便检查复位的约束有问题,果然复位管脚约束错了,改正后重新启动,但是问题依旧。
4、于是看BD中是否有错误,经过无数次的改正连线,添加取反模块,更改复位的触发模式,但是依旧无果。
5、已经处于崩溃的边缘了,便去Xilinx官方论坛搜是否有类似的问题,看到一个回答说是如下问题,意思就是说如果使用的开发板自己开发的,而不是官方出版的开发板的话,需要额外添加时钟约束文件,于是便按照这个提示添加了时钟的约束
添加一个时钟周期为5ns即时钟频率为200Mhz的时钟约束。
但是这次连SDK都不能正常启动了,出现了稀奇古怪的报错。
一气之下直接重新重启电脑并新建一个工程,按照之前修正后的操作进行,终于!在串口端口中出现了HelloWorld!
这次调试可谓是艰难。
总结
可能的问题所在:
1、供电电压过小问题
2、时钟设定错误、时钟绑定管脚问题或者时钟约束未写
3、BD中连线错误,高复位或低复位设定错误
4、复位管脚绑定错误
按照以上的顺序逐个排查问题
如果还不行的话,直接暴力重启电脑新建工程!
调试真的很磨练人心态,一次次的error,一次次的重试,但是调试成功很有成就感!