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

C6678 SRIO DSP接收Doorbell中断问题

在公司自己开发的板卡上调试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:

同问

赞(0)
未经允许不得转载:TI中文支持网 » C6678 SRIO DSP接收Doorbell中断问题
分享到: 更多 (0)