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.

SRIO的doorbell响应问题

接受端的doorbell处理与响应:

static void SRIOInterruptHandler1 (void *arg)
{
/* Increment the number of interrupts detected. */
srio_viIntCount1=1;
TESTdetect[0]++;
/* Disable Interrupts and Save Previous Interrupt Enable State */
asm(" dint");
//CSL_intcEventClear((CSL_IntcEventId)arg);
*(Int *)(0x01800040) |= 0x00100000;//Interrupt Controller Registers(CorePac),清除事件的标志寄存器
*( Uint32 *)(0x02900188) |= 0x00000001;
/* Restore Previous Interrupt Enable State */
asm(" rint");
}

后面是响应doorbell:

void srio_doorbell_inter(void)
{
int i=PrimeSetSize;
while(i--)
{
while (!srio_viIntCount1);
srio_viIntCount1 = 0;
TEST[0]++;
}

}

我用TESTdetect和TEST分别计数,发现TESTdetect的数目正常,而TEST数目却少;但是单独SRIO发doorbell的数目是正常的;加上其他的处理程序就不行啦,这是什么情况?

x 出现错误。请重试或与管理员联系。