在公司自己开发的板卡上调试SRIO
使用的DSP是TMS320C6678,FPGA是K7系列芯片,芯片间通过SRIO连接
C6678使用的开发环境是CCS5.3,编译器版本为C6000_7.4.1,MCSDK版本为2.1.2.6。
在调试过程中,C6678与FPGA互相用nwrite方式写数据均成功。调试Doorbell中断时,C6678向FPGA发送Doorbell没有问题,
但是FPGA向C6678发送Doorbell中断时,C6678最多只能接收999次Doorbell中断,之后就再也不能响应,此时FPGA在ChipScope中还能观察到Doorbell已发送出去。
附上调试用的C6678 SRIO程序,请各位工程师帮我看看程序中哪里配置有问题,导致有这个现象产生
谢谢!
Brighton Feng:
每次Doorbell中断服务程序中都要清除Doorbell标志,否则后面的Doorbell就不能再触发中断,下面是示例代码:
//read doorbell. this test only use doorbell reg 0 doorbell= gpSRIO_regs->DOORBELL_ICSR_ICCR[0].RIO_DOORBELL_ICSR;
//clear doorbell interrupt gpSRIO_regs->DOORBELL_ICSR_ICCR[0].RIO_DOORBELL_ICCR= doorbell;
Anni Zhang:
请问楼主,问题解决了吗?我也遇到了相似的问题,我的C6657接收门铃中断的次数远小于FPGA发送的门铃包数,DSP的门铃中断使用的是intdst16,不存在INTDSTX_Rate_CNTL寄存器设置的问题。
Thomas Yang1:
回复 Anni Zhang:
响应时间间隔是多少?程序中有没有其他更高优先级的中断会占用?中断函数处理占用时间是多少?
Anni Zhang:
回复 Thomas Yang1:
谢谢 Thomas Yang1,问题有了进展,增加了FPGA发送门铃的间隔,DSP就不丢门铃中断了。DSP测试程序然虽然开了几个中断,但只有一个门铃中断会被触发。
我使用的是FPGA的SRIO IP核,IP核中测试例程会向外发起多个SRIO通信(写、读、门铃、stream等),每种SRIO通信的间隔都很小,我就是把这些SRIO通信都改为门铃,就出现了DSP了丢失门铃中断问题。我现在的困惑是FPGA的SRIO IP核测试例程为什么不增加每种SRIO通信的间隔。
yonghao hai:
回复 Anni Zhang:
Anni Zhang,
你好,我们也遇到了doorbell中断只能进一次的问题,并且ICCR好像被锁住了还是怎么样,无法对ICCR进行写操作,这是为什么你知道吗?
Fanrong Meng:
回复 yonghao hai:
只能进一次中断,主要是这两个寄存器设置有问题(6678 DSP):
3.8.9.2 Interrupt Rate Counter Register(对于映射到INTDST0-INTDST15):
INTDSTn_RATE_CNTL Interrupt Rate Control Counter 和 INTDST_RATE_DIS Interrupt Pacing Disable (Address Offset 0x0310)这两个寄存器没有设置正确。如果
在INTDST_RATE_DIS Interrupt Pacing Disable = 0x0000的情况下,不重复写INTDSTn_RATE_CNTL Interrupt Rate Control Counter寄存器的话中断就只能进去一
次。如果你不想重复写INTDSTn_RATE_CNTL Interrupt Rate Control Counter寄存器,就将INTDST_RATE_DIS Interrupt Pacing Disable = 0xFFFF。
Fanrong Meng:
我在调试的过程中发现如果DSP(6678)中断服务程序占用时间较长的话,在Doorbell间隔比较小的情况下会造成doorbell丢包(可以从chipscope看到Doorbell应答消息
(Hello Format)的错误标志位有时候为1),如果想分析问题,在调试程序时,尽量减少printf这些语句的使用。我觉得应该是中断服务子程序的时间决定doorbell的
时间间隔。而要及时的触发中断(INTDST0-INTDST15),则可以设置INTDST_RATE_DIS Interrupt Pacing Disable 和 INTDSTn_RATE_CNTL Interrupt Rate Control Counter寄存器。
user5019752:
回复 Anni Zhang:
你好,请问你的那个srio门铃中断程序能共享一份吗?qq1468905840
junlun jiang:
回复 user5019752:
同问