Socket Creation Problem

Posted by ramanuday on July 2, 2015

I tried to create a new socket using

FreeRTOSsocket(FREERTOSAFINET, FREERTOSSOCKDGRAM, FREERTOSIPPROTO_UDP );

but it is entering the vAssertCalled() function and continuously looping over there.

When i tried to debug it is being called from the function

FreeRTOSSocket() { … … configASSERT( listLISTIS_INITIALISED( &xBoundSocketsList ) );

}

Can anyone help me with this socket creation..?


Socket Creation Problem

Posted by rtel on July 2, 2015

Have you called FreeRTOSIPInit()? http://www.freertos.org/FreeRTOS-Plus/FreeRTOSPlusTCP/TCPNetworkingTutorialInitialising_TCP.html


Socket Creation Problem

Posted by heinbali01 on July 2, 2015

Hi,

On the page referred to by Richard you will also see this important user-provided function:

~~~~~ void vApplicationIPNetworkEventHook( eIPCallbackEventt eNetworkEvent ) { static BaseTypet xTasksAlreadyCreated = pdFALSE;

/* Both eNetworkUp and eNetworkDown events can be processed here. */
if( eNetworkEvent == eNetworkUp )
{
    /* Create the tasks that use the TCP/IP stack if they have not already
    been created. */
    if( xTasksAlreadyCreated == pdFALSE )
    {
        /*
         * For convenience, tasks that use FreeRTOS+TCP can be created here
         * to ensure they are not created before the network is usable.
         */

        xTasksAlreadyCreated = pdTRUE;
    }
}

} ~~~~~

Only after xTasksAlreadyCreated has become true, you can start create and use sockets. Of course, you can also make this a global variable and call it something like:

BaseType_t xIPNetworkIsReady = pdFALSE;

Regards.