Hello, guys.
My srio interfaces are 1x 4port (6671 DSP to 6671 DSP).
I'm doing a communication function test.
I repeated Disconnecting the link and reconnection.
If DSP Port input error stopped or output error stopped, I writes a value of 0x2003F044 into the PLM Port n Control Symbol and re-align ackid. Then, communication resumes as normally.
if((hSrioCSL->RIO_SP[portNum].RIO_SP_ERR_STAT & 0x00010000) || (hSrioCSL->RIO_SP[portNum].RIO_SP_ERR_STAT & 0x00000100)) //Input or Output Error Stop
hSrioCSL->RIO_PLM[portNum].RIO_PLM_SP_LONG_CS_TX1 = 0x2003F044; //align Ack ID expectedAckID[portNum] = (hSrioCSL->RIO_SP[portNum].RIO_SP_LM_RESP & 0x000003E0) >> 5; hSrioCSL->RIO_SP[portNum].RIO_SP_ACKID_STAT = (expectedAckID[portNum] | (expectedAckID[portNum] << 8) | ((expectedAckID[portNum]+1) << 24)); CSL_SRIO_ClearLSUPendingInterrupt (hSrioCSL, 0xFFFFFFFF, 0xFFFFFFFF); } }
|
|
But if I continue this tests, I meet "EG_DATA_OVERFLOW" and "EG_CRQ_OVERFLOW" and communication has stopped.
If DSP Port PBM_SP(n)_STATUS "EG_DATA_OVERFLOW" or "EG_CRQ_OVERFLOW", can I clear this status and exchange packets as normally?
Thanks.
Regards.
You.