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:继续崩溃问题

Guru**** 663810 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1223728/cc3235modsf-continue-crash-issue

器件型号:CC3235MODSF

继续   

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1222298/cc3235modsf-hardfault-in-ti_sysbios_knl_task_unblocki__e

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我只是想强调一下、我回到了这个主题、并设法重现了我认为您案例中的根本原因。

    如您的终端所示、器件似乎以 AP 角色启动。

    我可以从打印默认10.123.45.1 (即 AP 角色 IP 地址)的[NetApp 事件]的打印输出中看到它。

    当我在我身边执行它时、我也会得到-2006错误。

    其原因是使用 HTTP 客户端、预计器件以工作站角色引导。

    您可以在 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;
        

    它在 (SLNETIF_STATUS_CONNECTED!= SlNetIF_getConnectionStatus ((ifNode->netif).IFID))上失败

    如果您需要更多帮助、请告诉我。

    此致、

    Shlomi.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shlomi:

    您的回答让我有点困惑。 我在  _SlSocketHandleASYNC_Connect ()中看到了故障,所以我不确定什么是  SlNetIF_queryIf ()。 这与我看到的问题有关。 我在调用 sl_drv_sync_obj_signal (&G -> ObjPool[g_pcb->FunctionParams.AsyncExt.ActionIndex].SyncObj)时看到失败;在以下代码中:

    /*******************************************************************************/
    /*   _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;
    }
    
    

     我看不到您突出显示的代码的相关性。 我们也启动到站模式。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    John:

    有一个与另一个线程混在一起、所以我对此表示歉意。

    让我们保留原始线程。

    我重新打开了它。

    此致、

    Shlomi.