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.

[参考译文] CC2340R5:当持续扫描器件进入挂起状态时。

Guru**** 2587365 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1405489/cc2340r5-while-continuous-scanning-device-entering-into-hang-state

器件型号:CC2340R5

工具与软件:

您好!

   目前我正在处理示例 basic_ble 多角色 配置文件项目。 当器件在某个时间后进入挂起状态并处于持续扫描状态时。

当我尝试修改  Connection Interval Min (连接间隔最小值  )和 Connection Interval Max (连接间隔最大值)时、没有进行扫描。 这里是扫描参数。

/*********************************************************************
 * @fn      Menu_scanStartCB
 *
 * @brief   A callback that will be called once the scan item in
 *          the scanningMenu is selected.
 *          Sets the parameters needed for a scan and starts the scan.
 *
 * @param   index - the index in the menu
 *
 * @return  none
 */
void Menu_scanStartCB(uint8 index)
{
    bStatus_t status;
    const BLEAppUtil_ScanStart_t centralScanStartParams =
    {
        /*! Zero for continuously scanning */
        .scanPeriod     = 1/*DEFAULT_SCAN_PERIOD*/, /* Units of 1.28sec */

        /*! Scan Duration shall be greater than to scan interval,*/
        /*! Zero continuously scanning. */
        .scanDuration   = 100 /*DEFAULT_SCAN_DURATION*/, /* Units of 10ms */

        /*! If non-zero, the list of advertising reports will be */
        /*! generated and come with @ref GAP_EVT_SCAN_DISABLED.  */
        .maxNumReport   = APP_MAX_NUM_OF_ADV_REPORTS
    };

    status = BLEAppUtil_scanStart(&centralScanStartParams);

    // Print the status of the scan
    MenuModule_printf(APP_MENU_GENERAL_STATUS_LINE, 0, "Call Status: ScanStart = "
                      MENU_MODULE_COLOR_BOLD MENU_MODULE_COLOR_RED "%d" MENU_MODULE_COLOR_RESET,
                      status);
}

我已经尝试修改连接参数中央设备、您能为  连续扫描建议连接参数以更新和扫描参数吗?

我想知道为什么会出现这种情况、以及我们如何解决这一问题。

SDK 版本:simplelink_lowpower_f3_sdk_8_10_01_02

CCS 版本:CCS 12.7.1

谢谢!

Vignesh。

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

    您好、Vignesh:

    感谢您的咨询。 请帮助我了解以下信息:

    1. 设备在执行连续扫描后是否挂起(没有任何连接间隔更新)? 您是否使用了开箱即用的 basic_ble 多角色并进行了修改、如果是、您能否提供有关此修改的更多详细信息?
    2. 您能否指定 导致该问题的连接间隔最小值和连接间隔最大值?

    谢谢!

    David。

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

    尊敬的 David:

    设备在进行连续扫描(没有任何连接间隔更新)后是否挂起? 您是否使用了开箱即用的 basic_ble 多角色并进行了修改、如果是、您能否提供有关此修改的更多详细信息?

    是、 器件在执行连续扫描后挂起(没有任何连接间隔更新)。

    您能否指定 正在设置导致此问题的连接间隔最小值和连接间隔最大值?

    我没有修改默认值。

    我已 在 void Central_Scan Handler(Uint32 event, BLEAppUtil_msgHdr_t *pMsgData)函数中添加了 BLEAPPUTIL_ADV_REPORT、并完成了一个事件掩码。

            case BLEAPPUTIL_ADV_REPORT:
            {
                MenuModule_printf(APP_MENU_PROFILE_STATUS_LINE6, 0, "ADV report:");
                bleStk_GapScan_Evt_AdvRpt_t advReport = scanMsg->pBuf->pAdvReport;
    
                break;
            }

    谢谢!

    Vignesh。

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

    尊敬的 Vignesh:

    您能说明一下设备是如何悬挂的吗? 您是否要点击 ICall_abort? 器件是否没有响应? 如果您停止执行调用栈报告什么内容?

    此致、

    1月

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

    您好、Jan:

      进入 for loop IN 时对系统进行编程  void 中止(void) exit.c 源文件中的函数。

    /****************************************************************************/
    /* ABORT - ABNORMAL PROGRAM TERMINATION.  CURRENTLY JUST HALTS EXECUTION.   */
    /****************************************************************************/
    __attribute__((noinline, section(".text:abort")))
    void abort(void)
    {
    #if defined(EMBED_CIO_BP)
    
       __asm("         .global C$$EXITE");
    #if defined(__ARM_ARCH_ISA_ARM)
       __asm("C$$EXITE:.word 0xDEFED0FE");
    #else
       __asm("       .align  4");
    #if defined(__ARM_BIG_ENDIAN)
       __asm("C$$EXITE:.half 0xDEFE");
    #else
       __asm("C$$EXITE:.half 0xD0FE");
    #endif /* __ARM_BIG_ENDIAN */
    #endif /* __ARM_ARCH_ISA_ARM */
    
    #else  /* !EMBED_CIO_BP */
    
       __asm("        .global C$$EXIT");
       __asm("C$$EXIT: nop");
    
    #endif
    
       for (;;);   /* SPINS FOREVER */
    }

    谢谢!

    Vignesh

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

    尊敬的 Vignesh:

    明白了。 如果暂停执行、能否共享堆大小、堆栈/任务大小、整个调用堆栈等? 这可能有助于我们缩小可能导致该行为的范围。

    此致、

    1月