zynq sdk裸机开发总是时不时的就不能进入中断了, 找来找去的找不到原因. 后来我经过多次尝试. 将问题限位到非常小的范围. 只用了最普通的内部定时器, 开启中断也是偶尔会进去偶尔会进不去.
我的版本是 2018.3
后来多次尝试慢慢的摸索出经验规律, 只要修改过代码重新开始调试.就会再也进不去中断函数. 只有按下开发板上的电源键, 进行重启, 重启后的板子再开始调试就能正常进入中断函数. .
找到一个解决方法了, 有没有更好的方法?
能不能在每次点击调试按钮的时候自动重启系统? 找了下还真有. 如下图,
zynq的调试使用GDB模式比较稳定, System Debugger模式不行, 不能调试断点. 加了也不会暂停执行,唯有GDB调试是可以的.
图上第4点. Reset entire System 一定要勾上, 每次调试的时候会自动重启系统, 这样就可以解决各种莫名其妙的问题. 只要重启能解决的问题, 勾上这个以后, 以后就不再出现了.
如果是野指针访问导致的异常, 那么软重启是解决不了问题的, 必须断电重启. 话说C语言真的就无法捕获这种问题么? 有知道的大神请指教… 异常后基本上就无解. . 定位到有问题的代码那得费老大的功夫了. 纯粹的浪费生命. 还是C#和Java好啊. 给你提示一个"找不到对象,或者NullPoint", 还告诉你是那行代码出问题了. 好怀念 “找不到对象” 的时候啊. C语言直接闷声不吭, 啥反映都没有就嗝屁了. 然后一行一行的循环执行. 最后定位到问题点. 那真是苦不堪言. .
为了解决各种寄存器配置问题. 我搞了一个寄存器查看工具. 想要的请留言 .