This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
最近使用28377d与lan9252进行ethercat通讯,程序在线运行中会进入非法中断,而非法中断触发一个是跑到了codestart disable watchdog,另一个是读到0x240001这个非法指令。而我程序初始化进行了disabledog(),触发是在我程序中有一行通过外部中断进行EMIF写,该行程序很普通,其他地方也有调用,去掉该行虽然可以不进入非法中断,但该行是为了建立与lan9252通讯时比不可少的。我程序中主要使用了time0,两个外部中断xint3、xint4,每次xint4触发会使xint3同时触发,这里有点麻烦。。。。在每个中断触发函数中都失能了其他中断触发。目前cmd文件按照参考的cmd配置,stack大小设置0x600,heep大小0x200,内存感觉够了,未使用延时函数。
如果说硬件问题,那岂不是不管什么程序跑着跑着就飞了。。。但我去掉那行代码就是可以持续运行(ps:虽然不能实现程序功能)
该问题困扰了我半个月了,按照网上说的也尝试过,未果。请大神们提供技术支持!!!感激不尽,如果真能解决,愿意有偿啊,还有有没有可以在illegal isr中添加什么代码定位每次跑飞前运行的代码呢??
感谢抽出时间回答,您的回答也给了我更多思路。目前已经找到问题了,外部中断程序中有一些函数会触发再次中断,而那些函数里又有开启全局中断。。。。。这就导致不停的进中断??应该不会吧,不是还得应答才行?那会不会又进入定时中断呢。。。。最后把中断函数里面的开启全局中断注释掉就可以了。