小弟正在研究FPGA与C6678通过SRIO连接的系统。目前FPGA作为主端,向DSP循环发送门铃1和门铃2,在6678进入门铃中断服务时有如下两个问题:
1)门铃1和门铃2会被同时检测到,srioRegs->DOORBELL_ICSR_ICCR[0].RIO_DOORBELL_ICSR寄存器的值一直为3。
例如:若FPGA端轮流发送门铃1,门铃2,门铃1,门铃2,门铃1,门铃2共三组6个门铃,则中断服务函数SRIO_Doorbell_ISR只进去四次,且DOORBELL_ICSR寄存器的值分别为1,3,3,2。而希望达到的效果是进入中断六次,寄存器的值为1,2,1,2,1,2
2)6678一旦收到门铃,进入中断服务函数后,会一直接收doorbell信号,直到所有doorbell中断处理完毕时才回到main函数。同样是上一个例子,FPGA端发送三组共6个门铃,6678这边会连续进六次中断服务函数后才返回主函数。而不是处理一次中断返回主函数,再处理一次中断返回主函数这个次序。
6678这边中断位每次都被及时清除。FPGA端doorbell发送的频率约为50k/s,速率下降后情况也类似。小弟百思不得其解,恳请各位大神解答。
user4683768:
你好,我跟你遇到了一样的问题,非常苦恼,如果你看到的话,可以分享一下解决方法吗?