中断状态寄存器置位,在core0上能收到中断,并触发中断处理函数;但是在core2收不到中断,相应的处理函数没有响应
单板上两个C6670 DSP通过SRIO交换机相连
我们的设计想法是:core0-3分别使用LSU1-4,对于LSU complete 中断,core0-3分别使用IntDst0-3。IntDst0-3对应的System Interrupt为112-115,选择的Host Interrupt为66/76/86/96,对应的Event ID都是24(24 CIC0_OUT(64+2+10*n)7)
对于Doorbell中断,core0-3分别使用IntDst16-19。IntDst16-19对应的Event ID都是20(20 INTDST(n+16)10)
将这两个事件组合起来都挂接到同一个中断处理函数srioDst0Isr'上,对应选择的à CPU Interrupt Vector为INT10
查到信道中断映射寄存器(CH_MAP_REGx)偏移地址0x70(对应System Interrupt :112-115)的值为0x60564C42(即为映射的Host Interrupt为66/76/86/96)
CorePac内部三个中断复用寄存器Interrupt Mux Register分别为0x0706025A/0x0B001601/0x38400D0C,由此说明SRIO用到的中断INT10对应的事件为Event0
按照以上的设计思想,在core0上能收到中断,并触发中断处理函数;但是在core2收不到中断,相应的处理函数没有响应。
LSU_REG4设置为中断模式,查看LSU相关的寄存器如下值(对应core2传输的情况):
0278h INTDST2_Decode 对应的值为 0x00040000
0240h LSU1_ICRR1 对应的设置值为 0x32103210
01D0h LSU1_ICSR 对应的值为 0x00000004
0D48h LSU3_reg4 对应的值为 0x00030011
0DE4h LSU_SETUP_REG1对应的值为0x000003FF