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

SRIO传输数据时,先运行doorbell再NWRITE发送数据,会卡在下面这个地方,如果我开始的时候只发NWRITE包就不会出现这样的问题

Uint32 KeyStone_SRIO_wait_LSU_completion(Uint32 lsuNum,
Uint32 transactionID, Uint32 contextBit)
{
Uint32 uiStateIndex= LSU_state_index_table[lsuNum][transactionID]; 
Uint32 uiCompletionCode;

do
{
uiCompletionCode=(gpSRIO_regs->LSU_STAT_REG[uiStateIndex/8]>>
((uiStateIndex&7)*4))&0xF;
}
while((uiCompletionCode&1) != contextBit);

return (uiCompletionCode>>1);
}

我先给DSP发送一个doorbell信号,通知DSP已经准备好了,然后再用NWRITE方式发送数据,会一直卡在这个循环,看了一下各个寄存器的值,LSU_STAT_REG[0]变成了3.查看手册,这个表示

Transaction Timeout occurred on Non-posted transaction

想问一下是什么问题,能怎么解决

user4664208:

Uint32 KeyStone_SRIO_wait_LSU_completion(Uint32 lsuNum,Uint32 transactionID, Uint32 contextBit){Uint32 uiStateIndex= LSU_state_index_table[lsuNum][transactionID]; Uint32 uiCompletionCode;

do{uiCompletionCode=(gpSRIO_regs->LSU_STAT_REG[uiStateIndex/8]>>((uiStateIndex&7)*4))&0xF;}while((uiCompletionCode&1) != contextBit);

return (uiCompletionCode>>1);}

我先给DSP发送一个doorbell信号,通知DSP已经准备好了,然后再用NWRITE方式发送数据,会一直卡在这个循环,看了一下各个寄存器的值,LSU_STAT_REG[0]变成了3.查看手册,这个表示

Transaction Timeout occurred on Non-posted transaction

想问一下是什么问题,能怎么解决

Shine:

回复 user4664208:

看一下是不是SRCIDMAP的问题,请参考下面的帖子。
e2echina.ti.com/…/70011

user4664208:

回复 Shine:

您好,我看了一下帖子,是由于我这边发送了需要response的doorbell信息,而我这边没有收到对方的response。但是我这边只用了一个核,也设了base_id,fpga端发的NWRITE和DOORBELL信息我也能收到,那为什么他发送的response信号我收不到呢?

Nick Zhang~:

回复 user4664208:

FPGA没有发送Response包给dsp

user4664208:

回复 Nick Zhang~:

你好,感谢回答。我问了做FPGA端的人FPGA默认发了一个response,我这边也显示DOORBELL信息发送完成,只是此时的寄存器值变成上述情况,发送下一个数据的时候就会卡在上面,你知道是什么情况吗?

赞(0)
未经允许不得转载:TI中文支持网 » SRIO传输数据时,先运行doorbell再NWRITE发送数据,会卡在下面这个地方,如果我开始的时候只发NWRITE包就不会出现这样的问题
分享到: 更多 (0)