TI中文支持网
TI专业的中文技术问题搜集分享网站

IPC中断响应问题

我想问一下,如果core1和core2同时向core0发送IPC中断,core0该如何响应?

我在程序中的设计是这样的,为了实现IPC有效性测试,我将core0设为主控核,core0向core1和core2发送IPC中断,当core1和core2接收到core0的中断后进入中断服务函数,这两个核的中断服务函数为向core0产生IPC中断,其中core1发送ipc中断的标号为0x10,core2发送中断的标号为0x20。当core0接收到中断后对IPCAR0中的标号来进行检测,判断是否为这两个核产生的IPC中断。

但是在程序的运行后我发现,core确实进了两次IPC中断服务函数,但是接收到的中断标记却不对,一次是0x30,第二次是0。但是单步运行是正确的,所以我想问一下是不是和中断优先级有关系?

多谢~~

Andy Yin1:

您好,

使用IPC register核间中断,根据IPCAR寄存器中对应SRCC bit的值来确定中断源,如果有多个bit被置上,可以在一个中断服务函数中循环响应。

对于你这种应用,也可以使用QMSS进行核间通信,可以使用QpendQ或者Accumulator Queue,此时即使多个core同时向同一个queue中push descriptor也会产生多次中断,并且可以根据queue中的描述符来决定中断源。

yuxiang li:

回复 Andy Yin1:

那andy我还想问一下,还是举我上边说过的例子:

您的意思是说:当我的1核向0核发送IPC中断,SRCC为0x10,2核向0核发送IPC中断,SRCC为0x20。在0核会相应两次IPC中断,但是第一次查IPCAR0是0x30,第二次查的时候是0么。(我在每次执行完IPC中断服务函数后都会对IPCAR0清零)

yuxiang li:

回复 Andy Yin1:

谢谢啦~~

zi hu:

回复 yuxiang li:

li yuxiang

          你好,我还想问一下,什么叫查询每一个bit,查询每一位可以解决多核同时向0核发中断的问题么?可以解决冲突?

zi hu:

回复 Andy Yin1:

Andy

       能否问一下KICK0,KICK1,的作用

赞(0)
未经允许不得转载:TI中文支持网 » IPC中断响应问题
分享到: 更多 (0)