取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
desen2010
Visitor
Visitor
216 次查看
注册日期: ‎12-02-2016

串口中断异常

芯片:zynq7020,开发环境:Vivado2016.2

打开两个串口uart0和uart1,uart1上电后一直进入中断,但读IMR寄存器和ISR寄存器都是0,关闭uart1,uart0工作正常,请问这是怎么回事?

uart异常.png
0 项奖励
3 回复数
chaoz
Xilinx Employee
Xilinx Employee
159 次查看
注册日期: ‎09-14-2018

@desen2010 

既然进入中断应该至少有一个中断状态寄存器位是1,感觉可能其它什么地方代码有问题?确认下寄存器地址对不对?

另外可以直接用sdk bsp的uart 例子来测试下看看。

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

0 项奖励
desen2010
Visitor
Visitor
110 次查看
注册日期: ‎12-02-2016

感谢您的回复!我单步调试发现在XUartPs_CfgInitialize函数中,有三条初始化语句没有执行,附件图片中142-144行未执行,单步debug直接跳过去了。导致我获得的BaseAddress不正确。请问这是是什么原因呢?

uart异常2.png
0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
53 次查看
注册日期: ‎09-14-2018

@desen2010  确实抓到了base address再执行CfgInitialize前后没变是吗?

确实有点奇怪,clean下工程再重新编译下看看?或者把优化等级改为O0试试?

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

 

0 项奖励