lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] hang in sys_arch_sem_wait


From: Gennady Shmakov
Subject: [lwip-users] hang in sys_arch_sem_wait
Date: Thu, 15 May 2014 18:00:23 +0400

I'm having STM32 LwIP device sending frames of jpeg data of about 3k bytes on web server.
LwIP connects to web server via PPP GPRS modem, connection initiated without any problems, then few frames are transmitted to server (number of frames ranges from 8 to 90) and then everything hangs in sys_arch_sem_wait waiting for semaphore forever.
I'm using latest ppp-new branch with netconn api.
Debug and trace information does not indicate any errors.
By the time it hanging no printf debug information is received. 

Thanks for any advise/help/comments/thoughts.


u32_t sys_arch_sem_wait( sys_sem_t *pxSemaphore, u32_t ulTimeout )
{
portTickType xStartTime, xEndTime, xElapsed;
unsigned long ulReturn;

xStartTime = xTaskGetTickCount();

if( ulTimeout != 0UL )
{
if( xSemaphoreTake( *pxSemaphore, ulTimeout / portTICK_RATE_MS ) == pdTRUE )
{
xEndTime = xTaskGetTickCount();
xElapsed = (xEndTime - xStartTime) * portTICK_RATE_MS;
ulReturn = xElapsed;
}
else {ulReturn = SYS_ARCH_TIMEOUT;}
}
else
{
//while( xSemaphoreTake( *pxSemaphore, portMAX_DELAY ) != pdTRUE );
//* GSH:
while( xSemaphoreTake( *pxSemaphore, 10000 ) != pdTRUE ) { // <---- never gets semaphore
printf("\nsys_arch_sem_wait hanging..."); 
}
//*/
xEndTime = xTaskGetTickCount();
xElapsed = ( xEndTime - xStartTime ) * portTICK_RATE_MS;
if( xElapsed == 0UL ) {xElapsed = 1UL;}
ulReturn = xElapsed;
}
return ulReturn;
}

-----
Regards,
Gennady
mob. +7 985 8181210

reply via email to

[Prev in Thread] Current Thread [Next in Thread]