This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I am using NDK 2.24.00.11 with C6455 ethernet driver.
I created a SOCK_STREAM server socket with IPPROTO_TCP on the C6455 DSP, and I have a client socket created on a different Host microprocessor.
Host microprocessor socket sends the data to the DSP, and intermittently DSP recv() function returns 0.
I found out that somehow the following code in the NDK's pbm.c PBM_free() function got executed by the previous recv() function.
if(!pPkt || (pPkt->Type != PBM_MAGIC_POOL && pPkt->Type != PBM_MAGIC_ALLOC)) { DbgPrintf(DBG_ERROR, "PBM_free: Invalid Packet"); return; }
And sometimes the following code in the NDK's pbm.c PBMQ_enq() function got executed by the previous recv() function.
if( pPkt->Type != PBM_MAGIC_POOL && pPkt->Type != PBM_MAGIC_ALLOC ) { DbgPrintf(DBG_ERROR, "PBM_enq: Invalid Packet"); return; }
Since debug flag is DBG_ERROR, DbgPrintf() will call NC_NetStop(), which will stop the NetScheduler.
What could cause this? Do you have any suggestion what to check?
It seems then we need to track down who called DbgPrintf. What was printed out of the DbgPrintf?