使用UPP的B口,向外面发送64bytes,同时也使用A口接收64bytes的数据,发送的数据可以在逻辑分析仪中看到64bytes,接收的也能从memory窗口看到。
但是不管是发送完,还是接收完,都无法进入UPP的中断服务程序
HWI的interrupt number为9,事件为94,对应event ID为2,利用UPP事件联合EventCombiner产生中断。
以上为cfg文件的EventCombiner的设置。
其中upp的CPU中断号uppIntNum为9,事件uppEvt值为94。
以上代码,debug下,程序会走if语句,也就是说根据ECM来注册我的uppIsr。
以上BUFSIZE为64。GIO_ISSUE的底层,在最后,会调用函数 Upp_localEnableInterrupts(单步调试发现的)
现在的问题是都有64bytes的数据发出去,也有64bytes的数据接收到了,为何仍然无法进入中断服务程序uppIsr?
然后,我试着在cfg文件中加入以下几句:
var hwi0Params = new Hwi.Params();
hwi0Params.instance.name = "hwi9";
hwi0Params.eventId = 2;
Program.global.hwi9 = Hwi.create(9, "&uppIsr", hwi0Params);
它会报错了,因为跟cfg的EventCombiner定义重复了。
EventCombiner.eventGroupHwiNum[0] = 7;
EventCombiner.eventGroupHwiNum[1] = 8;
EventCombiner.eventGroupHwiNum[2] = 9;
EventCombiner.eventGroupHwiNum[3] = 10;
现在也不知道问题出在哪里,还请各位大神指点一下,非常感谢!