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

DSP响应FPGA的doorbell

请问论坛各路大神

1. 在调试6678和FPGA的SRIO时,FPGA端发送三次00a00200000210000,在将所有的中断路由和中断响应函数注释后DSP端自动回复响应包如下

0x00d0400000000000  0x55d06000800000000,

0x01d0400800000000  0x55d06000800000000,

0x02d0400800000000  0x55d06000800000000,

请问这个包的含义是什么呢?

2. 在注释掉doorbell中断相关代码前后尝试修改中断路由,得到的响应包依旧是这样的,我一直怀疑是中断的路由出了问题。现在的配置是只用了0核来处理所有的事务,配置代码如下:

for (i = 0; i < 16; i++)
{
CSL_SRIO_RouteDoorbellInterrupts(hSrio, 0, i, 0);
CSL_SRIO_RouteDoorbellInterrupts(hSrio, 1, i, 1);
CSL_SRIO_RouteDoorbellInterrupts(hSrio, 2, i, 2);
CSL_SRIO_RouteDoorbellInterrupts(hSrio, 3, i, 3);
} /*按照例程将每个doorbell register的16个中断路由到相应的destination*/

CSL_SRIO_DisableInterruptPacing (hSrioCSL, 0);
CSL_SRIO_DisableInterruptPacing (hSrioCSL, 1);
CSL_SRIO_DisableInterruptPacing (hSrioCSL, 3);
CSL_SRIO_DisableInterruptPacing (hSrioCSL, 4);

CpIntc_dispatchPlug(CSL_INTC0_INTDST0, (CpIntc_FuncPtr)Doorbell1Isr, (UArg)hDrvManagedSrioDrv, TRUE);
CpIntc_dispatchPlug(CSL_INTC0_INTDST1, (CpIntc_FuncPtr)Doorbell2Isr , (UArg)hDrvManagedSrioDrv, TRUE);
CpIntc_dispatchPlug(CSL_INTC0_INTDST3, (CpIntc_FuncPtr)Doorbell3Isr, (UArg)hDrvManagedSrioDrv, TRUE);
CpIntc_dispatchPlug(CSL_INTC0_INTDST4, (CpIntc_FuncPtr)Doorbell4Isr, (UArg)hDrvManagedSrioDrv, TRUE);

CpIntc_mapSysIntToHostInt(0, CSL_INTC0_INTDST0, 8);
CpIntc_mapSysIntToHostInt(0, CSL_INTC0_INTDST1, 9);
CpIntc_mapSysIntToHostInt(0, CSL_INTC0_INTDST3, 10);
CpIntc_mapSysIntToHostInt(0, CSL_INTC0_INTDST4, 11);

CpIntc_enableHostInt(0, 8);
CpIntc_enableHostInt(0, 9);
CpIntc_enableHostInt(0, 10);
CpIntc_enableHostInt(0, 11);

CpIntc_enableSysInt(0, CSL_INTC0_INTDST0);
CpIntc_enableSysInt(0, CSL_INTC0_INTDST1);
CpIntc_enableSysInt(0, CSL_INTC0_INTDST3);
CpIntc_enableSysInt(0, CSL_INTC0_INTDST4);

eventId_0 = CpIntc_getEventId(8);
eventId_1 = CpIntc_getEventId(9);
eventId_2 = CpIntc_getEventId(10);
eventId= CpIntc_getEventId(11);

EventCombiner_dispatchPlug (eventId_0, CpIntc_dispatch, 8, TRUE);
EventCombiner_dispatchPlug (eventId_1, CpIntc_dispatch, 9, TRUE);
EventCombiner_dispatchPlug (eventId_2, CpIntc_dispatch, 10, TRUE);
EventCombiner_dispatchPlug (eventId, CpIntc_dispatch, 11, TRUE);

配置是否有错呢?

谢谢!

Nancy Wang:

包的格式参考以下文档看一下:

All request and response packet formats are described in the RapidIO Input/Output Logical Specification and Message Passing Logical Specification

長生:

回复 Nancy Wang:

其实主要的问题在于,DSP在收到doorbell之后会自动回响应包,这个动作在我完全没有配置中断响应的情况下发生的,通过手册我了解到在收到doorbell后会发一个DONE的response包,这个DONE包就是上面提到的0x00d04000000000000x55d06000800000000吗?它需要我自行去配置吗?

赞(0)
未经允许不得转载:TI中文支持网 » DSP响应FPGA的doorbell
分享到: 更多 (0)