TI论坛
直播中

刘欣

7年用户 210经验值
私信 关注

FPGA向TMS320C6678发送Doorbell中断时,只能接收999次Doorbell中断,但在ChipScope中能观察到Doorbell仍在发送,这是哪里出了问题?

本帖最后由 一只耳朵怪 于 2018-5-22 11:51 编辑

在公司自己开发的板卡上调试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程序,请各位工程师帮我看看程序中哪里配置有问题,导致有这个现象产生
谢谢!

回帖(11)

谭齐慧

2018-5-22 09:28:58
每次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;
举报

王辉

2018-5-22 09:43:27
请问楼主,问题解决了吗?我也遇到了相似的问题,我的C6657接收门铃中断的次数远小于FPGA发送的门铃包数,DSP的门铃中断使用的是intdst16,不存在INTDSTX_Rate_CNTL寄存器设置的问题。
举报

高欢

2018-5-22 10:01:51
引用: mingodong 发表于 2018-5-22 09:43
请问楼主,问题解决了吗?我也遇到了相似的问题,我的C6657接收门铃中断的次数远小于FPGA发送的门铃包数,DSP的门铃中断使用的是intdst16,不存在INTDSTX_Rate_CNTL寄存器设置的问题。

响应时间间隔是多少?程序中有没有其他更高优先级的中断会占用?中断函数处理占用时间是多少?
举报

王辉

2018-5-22 10:20:52
引用: liuqin123 发表于 2018-5-22 10:01
响应时间间隔是多少?程序中有没有其他更高优先级的中断会占用?中断函数处理占用时间是多少?

谢谢 Thomas Yang1,问题有了进展,增加了FPGA发送门铃的间隔,DSP就不丢门铃中断了。DSP测试程序然虽然开了几个中断,但只有一个门铃中断会被触发。
我使用的是FPGA的SRIO IP核,IP核中测试例程会向外发起多个SRIO通信(写、读、门铃、stream等),每种SRIO通信的间隔都很小,我就是把这些SRIO通信都改为门铃,就出现了DSP了丢失门铃中断问题。我现在的困惑是FPGA的SRIO IP核测试例程为什么不增加每种SRIO通信的间隔。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分