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.

CC3235MODSF: Continue Crash Issue

  • Hi,

    Just wanted to highlight that I got back to this topic and managed to reproduce what I believe is the root cause in your case.

    As shown on your terminal, seems like the device boots up in AP role.

    I can see it from the printout of the [NETAPP EVENT] printing the default 10.123.45.1 which is the AP role IP address.

    When I do it on my side, I get the same -2006 error.

    The reason for it is that using an HTTP client, it is expected that the device boots up in station role.

    You can see it in the code from SlNetIf_queryIf().

        while (NULL != ifNode)
        {
            /* Check if the identifier of the interface is equal to the input    */
            if (((ifNode->netIf).ifID) & ifBitmap)
            {
                /* Save the netIf only at the first match                        */
                if (NULL == bestPartialMatchIf)
                {
                    bestPartialMatchIf = &(ifNode->netIf);
                }
                /* Skip over Bitmap queries                                      */
                if ( 0 != queryBitmap)
                {
                    /* Check if the state bit needs to be set and if it is       */
                    if ( (true == IS_STATE_BIT_SET(queryBitmap)) &&
                         (SLNETIF_STATE_DISABLE == (GET_IF_STATE(ifNode->netIf))) )
                    {
                        /* State is disabled when needed to be set, continue
                           to the next interface                                 */
                        ifNode = ifNode->next;
                        continue;
                    }
                    /* Check if the connection status bit needs to be set
                       and if it is                                              */
                    if ( (true == IS_CONNECTION_STATUS_BIT_SET(queryBitmap)) &&
                         (SLNETIF_STATUS_CONNECTED != SlNetIf_getConnectionStatus((ifNode->netIf).ifID)) )
                    {
                        /* Connection status is not connected when it needed to
                           be - continue to the next interface                    */
                        ifNode = ifNode->next;
                        continue;
                    }
                }
                /* Required interface found, return the interface pointer        */
                return &(ifNode->netIf);
            }
            ifNode = ifNode->next;
        

    It fails on (SLNETIF_STATUS_CONNECTED != SlNetIf_getConnectionStatus((ifNode->netIf).ifID)) )

    Let me know if you need more assistance.

    Regards,

    Shlomi

  • Hi Shlomi,

    I am a bit confused by your response. I am seeing the fault in  _SlSocketHandleAsync_Connect() so I am not sure what SlNetIf_queryIf(). has to do with the problem I am seeing. I see the failure at the call to SL_DRV_SYNC_OBJ_SIGNAL(&g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].SyncObj); in the code below:

    /*******************************************************************************/
    /*   _SlSocketHandleAsync_Connect */
    /*******************************************************************************/
    _SlReturnVal_t _SlSocketHandleAsync_Connect(void *pVoidBuf)
    {
        SlSocketResponse_t          *pMsgArgs   = (SlSocketResponse_t *)_SL_RESP_ARGS_START(pVoidBuf);
    
        SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
    
        VERIFY_PROTOCOL((pMsgArgs->Sd & SL_BSD_SOCKET_ID_MASK) <= SL_MAX_SOCKETS);
        VERIFY_SOCKET_CB(NULL != g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs);
        
        ((SlSocketResponse_t *)(g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs))->Sd = pMsgArgs->Sd;
        ((SlSocketResponse_t *)(g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs))->StatusOrLen = pMsgArgs->StatusOrLen;
    
        SL_DRV_SYNC_OBJ_SIGNAL(&g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].SyncObj);
        SL_DRV_PROTECTION_OBJ_UNLOCK();
        
        return SL_OS_RET_CODE_OK;
    }
    
    

    So, I do not see the relevance of the code you are highlighting. We boot into station mode as well.

    Regards,

    John

  • John,

    There was a mix with another thread so I apologize for that.

    Let's keep the original thread.

    I reopened it.

    Regards,

    Shlomi