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

6678的门铃中断响应时间

FPGA通过SRIO的门铃通知6678进行中断处理,出现的问题是:如果相邻门铃之间的时间间隔较大,则6678能够进入门铃中断,如果相邻门铃之间的时间时间较小(大约600us),则6678不能进入门铃中断。请问,门铃间隔不变的前提下(大约600us),如何让6678能够响应门铃中断?

Shine:

请问中断函数处理占用时间是多少?中断断服务程序占用时间较长的话,在Doorbell间隔比较小的情况下会造成doorbell丢包。避免在中断服务程序用用printf这些打印语句。

user1212849:

回复 Shine:

中断处理函数的就是清除中断标志,其他什么都没有做。我用INTST_16–23,没有用0-15

user1212849:

利用论坛中提供的例程K1_STK_v1.1,实现FPGA发送门铃给6678。如果门铃的间隔为600us,则6678不能够进入门铃中断,如果间隔为50ms,6678能够进入门铃中断。门铃中断服务程序中,只进行了清门铃中断标志。

doorbell= gpSRIO_regs->DOORBELL_ICSR_ICCR[1].RIO_DOORBELL_ICSR;

//clear doorbell interrupt gpSRIO_regs->DOORBELL_ICSR_ICCR[1].RIO_DOORBELL_ICCR= doorbell;

后来发现一个文章说可以设置RIO_INTDST_RATE_CNT,我在程序中修改了RIO_INTDST_RATE使能寄存器和RIO_INTDST_RATE_CNT=0,

/*enable interrupt rate control*/ gpSRIO_regs->RIO_INTDST_RATE_DIS= 0x0; for(i= 0; i< 16; i++) { gpSRIO_regs->RIO_INTDST_RATE_CNT[i]= 0; },

并且在中断服务程序中也对RIO_INTDST_RATE_CNT进行重新赋值,现象还是同上。

求助大家帮忙分析一下。

user1212849:

利用论坛中提供的例程K1_STK_v1.1,实现FPGA发送门铃给6678。如果门铃的间隔为600us,则6678不能够进入门铃中断,如果间隔为50ms,6678能够进入门铃中断。门铃中断服务程序中,只进行了清门铃中断标志。

doorbell= gpSRIO_regs->DOORBELL_ICSR_ICCR[1].RIO_DOORBELL_ICSR;

//clear doorbell interruptgpSRIO_regs->DOORBELL_ICSR_ICCR[1].RIO_DOORBELL_ICCR= doorbell;

后来发现一个文章说可以设置RIO_INTDST_RATE_CNT,我在程序中修改了RIO_INTDST_RATE使能寄存器和RIO_INTDST_RATE_CNT=0,

/*enable interrupt rate control*/gpSRIO_regs->RIO_INTDST_RATE_DIS= 0x0;for(i= 0; i< 16; i++){gpSRIO_regs->RIO_INTDST_RATE_CNT[i]= 0;},

并且在中断服务程序中也对RIO_INTDST_RATE_CNT进行重新赋值,现象还是同上。

求助大家帮忙分析一下。

赞(0)
未经允许不得转载:TI中文支持网 » 6678的门铃中断响应时间
分享到: 更多 (0)