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.

[参考译文] LP-CC2652RB:开始调试请求陷入无限循环

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1249224/lp-cc2652rb-start-commissioning-request-gets-stuck-in-endless-loop

器件型号:LP-CC2652RB

你好。 我已经 移除了示例应用程序的 UI 和 UART 组件、以降低功耗并实现 uC 睡眠。 执行此操作时、将删除所有调试功能、并且无法通过按下侧边按钮来触发配对。 为了解决这一问题、我实施了调试例程作为按钮回调、如下所示:

static uint16_t bdbCommissioningModes =
BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;

static void commissioningBtnCallback(Button_Handle _buttonHandle,
                                     Button_EventMask _buttonEvents)
{

    if ((_buttonEvents & Button_EV_CLICKED) && (_buttonHandle == gLeftButtonHandle))
    {
        zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
        zstack_bdbStartCommissioningReq.commissioning_mode =
                bdbCommissioningModes;
        Zstackapi_bdbStartCommissioningReq(appServiceTaskId,
                                           &zstack_bdbStartCommissioningReq);
    }
}

void configureCommissioningCb()
{
    Button_Params bparams;
    Button_Params_init(&bparams);
    gLeftButtonHandle = Button_open(CONFIG_BTN_LEFT, &bparams);

    Button_setCallback(gLeftButtonHandle, commissioningBtnCallback);
}

按钮回调正常运行并正确触发、但是我最终卡在  sendReqDefaultRsp ,即:

            while(!gotRsp)
            {
                // Wait for the response message
                OsalPort_blockOnEvent(Task_self());

                pCmdStatus = (zstackmsg_genericReq_t*)OsalPort_msgFindDequeue(appServiceTaskId, pMsg->hdr.event);

                if(pCmdStatus)
                {
                  gotRsp = true;
                }
            }

似乎该应用程序等待从未送达的响应。 我的调试请求配置中是否缺少某些内容?

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

    您好、V:

    Zstackapi_BdbStartCommissioningReq 似乎没有问题。  我建议您确保 在 调用 SampleApp_Init 并处理第一个调试模式之后才调用调试 BtnCallback。  您还可以尝试测试计时器回调、该回调会在器件初始化后的一段时间(如一秒)自动设置调试模式。  commissingBtnCallback 的内容是什么?除了删除 UI 之外、您是否进行了任何其他更改?  调用 sendReqDefaultRsp 的 API 是什么?  如果可能的话、请显示 CCS 调试调用堆栈。

    此致、
    瑞安

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

    您好、Ryan

    此问题是由于我从 ISR 上下文中调用调试功能导致的。 我假设 ZStack 线程正在 睡眠、或者该例程花费了太长时间。  在 ISR 期间设置标志并在 ZStack 主环路中对其进行评估可以解决该问题、现在该功能是正常的。