想请问一下TI的工程师,我知道如果数据发送给TCP后,返回值如果是正值代表发送字节数,负值代表的是错误。
现在我就出现了这种情况,当我发送大量数据给TCP的时候,会出现返回值是错误的现象,但是我不明白是什么原因造成的?
请指点一下应该如何修改?
以下这段程序是基于例程修改的,放于BsdTcpClient()中。实现数据传输。
int WSPITransfer(unsigned long ulBase, int iSockID)
{
int iStatus;
while(1)
{
iStatus=sl_Recv(iSockID,rebuff,100,0);
GPIO_IF_LedOff(MCU_ALL_LED_IND);
if(iStatus >0)
{
GPIO_IF_LedOn(MCU_ALL_LED_IND);
while(1)
{
MAP_UtilsDelay(40000);
UDMASetupTransfer(UDMA_CH31_GSPI_TX,UDMA_MODE_BASIC,1024,
UDMA_SIZE_8,UDMA_ARB_1,
(void *)g_ucTxBuff,UDMA_SRC_INC_8,(void *)(GSPI_BASE + MCSPI_O_TX0),
UDMA_DST_INC_NONE);
UDMASetupTransfer(UDMA_CH30_GSPI_RX,UDMA_MODE_BASIC,1024,
UDMA_SIZE_8,UDMA_ARB_1,
(void *)(GSPI_BASE + MCSPI_O_RX0),UDMA_SRC_INC_NONE,
(void *)g_ucRxBuff,UDMA_DST_INC_8);
iStatus=sl_Send(iSockID,g_ucRxBuff,1024,0);
if(iStatus < 0)
{
// ASSERT_ON_ERROR(sl_Close(iSockID));
break;
}
MAP_SPIEnable(GSPI_BASE);
g_cDummy = 0;
MAP_SPIIntEnable(GSPI_BASE, SPI_INT_EOW);
MAP_IntEnable(INT_GSPI);
}
}
}
}