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

SRIO 卡在 KeyStone_SRIO_match_ACK_ID(0, DSP1_SRIO_BASE_ID, 0);

1X模式下,SRIO卡在了match ACK ID里面的循环里。请问是什么原因

//Set the local OUTBOUND_ACKID to be same as the responsed ACKID gpSRIO_regs->RIO_SP[uiLocalPort].RIO_SP_ACKID_STAT= uiRemote_In_ACK_ID;
if(uiRemote_In_ACK_ID != 0)
printf("match_ACK_ID SP_ACKID_STAT=0x%x\n",gpSRIO_regs->RIO_SP[uiLocalPort].RIO_SP_ACKID_STAT); //for dubug
do
{ //set the remote OUTBOUND_ACKID to be same as local INBOUND_ACKID
uiLocal_In_ACK_ID= (gpSRIO_regs->RIO_SP[uiLocalPort].RIO_SP_ACKID_STAT&
CSL_SRIO_RIO_SP_ACKID_STAT_INB_ACKID_MASK)>>
CSL_SRIO_RIO_SP_ACKID_STAT_INB_ACKID_SHIFT;

uiMaintenanceValue= ((uiRemote_In_ACK_ID+1)<<
CSL_SRIO_RIO_SP_ACKID_STAT_INB_ACKID_SHIFT)|uiLocal_In_ACK_ID;

//set the remote ACK_ID through maintenance packet
uiResult= KeyStone_SRIO_Maintenance(uiLocalPort, uiLocalPort, uiDestID,
0x148+(0x20*uiRemotePort), GLOBAL_ADDR(&uiMaintenanceValue), SRIO_PKT_TYPE_MTN_WRITE);

if(uiResult) //fail
continue; //readback the remote ID
uiResult= KeyStone_SRIO_Maintenance(uiLocalPort, uiLocalPort, uiDestID, 0x148+(0x20*uiRemotePort), GLOBAL_ADDR(&uiMaintenanceValue), SRIO_PKT_TYPE_MTN_READ);
uiRemote_out_ACK_ID= uiMaintenanceValue&
CSL_SRIO_RIO_SP_ACKID_STAT_OUTB_ACKID_MASK;
}while(uiResult|(uiLocal_In_ACK_ID+1 != uiRemote_out_ACK_ID));

Shine:

能否详细描述一下你的问题?包括用的什么板子?是什么板子之间的SRIO通信?代码是直接用的例程还是自己写的?

先参考一下下面的帖子。http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/78151/193539.aspx#193539

赞(0)
未经允许不得转载:TI中文支持网 » SRIO 卡在 KeyStone_SRIO_match_ACK_ID(0, DSP1_SRIO_BASE_ID, 0);
分享到: 更多 (0)