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:CC2340R5断开问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1455783/cc2340r5-cc2340r5-disconnection-issue

器件型号:CC2340R5
主题中讨论的其他器件: SysConfig

工具与软件:

尊敬的 TI 团队:

我根据中提供的数据流示例使用了 BLE 模块(CC2340R5) simplelink_lowpower_f3_sdk_8_10_01_02 . 该模块配置为 GATT 服务器、并且我使用的是 Android 应用程序 Bajaj Ride Connect 以连接到模块。

模块按预期运行;但是、在运行大约2小时后、我遇到了与客户端(电话)断开连接的问题。 我使用 Code Composer Studio 中的实时对象视图(ROV)分析了堆内存、没发现内存用尽或泄漏的迹象。

此问题是否与 BLE 堆栈有关? 如果是、是否有您建议进一步研究的特定配置或调试技术? 此外、BLE 堆栈中是否存在导致此类行为的已知超时、参数设置或其他潜在原因?

非常感谢您为帮助解决此问题而提供的任何见解或建议。

感谢您的支持。

此致、

Shivam

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

    尊敬的 Shivam:

    自 F3 SDK 的8.10 SDK 发布以来、已经发布了几个版本。 您能否在最新的8.40 SDK 上测试此行为以查看其是否仍然存在?

    此致、

    1月

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

    您好、Jan:


    我曾尝试将我的代码集成到 SDK 8.40中、但很遗憾、它未按预期运行。 调试时、我确定App_StackInitDoneHandler函数中的回调BLEAppUtil_init未被触发。 下面我提供了相关详情供您参考:

    1. 当前环境详细信息

      • CCS Eclipse 版本 :12.8.1.00005
      • SysConfig 版本 :1.22.
      • 编译器版本 :TI Clang v3.2.LTS

    2. 从发行说明中观察

      • SDK 8.40的版本说明指定了与 CCS Theia v1.5.1的兼容性。
      • 我使用两个编译器版本(TI Clang v3.2.2.LTS 和 TI Clang v4.0.0.LTS)在 CCS Theia v1.5.1上测试了代码。 虽然代码在这两种情况下都成功编译、但问题仍然存在。

    3. SDK 8.20中的行为

      • 代码按 SDK 8.20中的预期工作。
      • 由于未对代码进行任何更改、因此理论上、它在 SDK 8.40中也应能正常运行。

    如果您能提供有助于解决此问题的任何见解或建议、我将不胜感激。 您的指导对于确定 SDK 8.20和8.40之间可能不同的潜在原因或配置非常重要。

    期待您的答复。


    void App_StackInitDoneHandler(gapDeviceInitDoneEvent_t *deviceInitDoneData)
    {
        bStatus_t status = SUCCESS;
        //DevInfo_start();
        vfn_BCPT_Init();
        s_DSM_Init();
        Peripheral_start();
        Connection_start();
        Pairing_start();
        Data_start();
    }
    
    /*********************************************************************
     * @fn      appMain
     *
     * @brief   Application main function
     *
     * @return  none
     */
    void appMain(void)
    {
        // Call the BLEAppUtil module init function
        /*BLEAppUtil_init(&criticalErrorHandler,
                        &App_StackInitDoneHandler,
                        &appMainParams, 
                        &appMainPeriCentParams);*/
        /* Call driver init functions */
        GPIO_init();
        //vfn_NVSM_init();
        //vfn_NVSM_writeNVforFirstTime();
        
        //vfn_BTUML_Init();
    
        uint32_t counterTarget;
        lgptHandle = NULL;
        LGPTimerLPF3_Params params;
        LGPTimerLPF3_Params_init(&params);
        params.hwiCallbackFxn = timerCallback;
        lgptHandle = LGPTimerLPF3_open(0, &params);
        //if(lgptHandle == NULL) {
        //  Log_error0("Failed to open LGPTimer");
        //  Task_exit();
        //}
        counterTarget = 48000;  // 1 ms with a system clock of 48 MHz
        LGPTimerLPF3_setInitialCounterTarget(lgptHandle, counterTarget, true);
        LGPTimerLPF3_enableInterrupt(lgptHandle, LGPTimerLPF3_INT_TGT);
        LGPTimerLPF3_start(lgptHandle, LGPTimerLPF3_CTL_MODE_UP_PER);
    
        BLEAppUtil_init(&criticalErrorHandler,
                        &App_StackInitDoneHandler,
                        &appMainParams,
                        &appMainPeriCentParams);
    }
    


    Shivam

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

    尊敬的 Shivam:

    我懂了。 能否验证迁移指南中与编译后处理步骤相关的步骤3是否已完成?

    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_8_40_00_61/docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/porting-guides/cc23xx/CC23XX_SDK_8.20_to_8.40.html

    此致、

    1月

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

    您好、Jan:

    迁移指南的第3步已经完成。 但是、以下与ti_utils_build_GenMap_sym_CRC_CCFG.elf文件符号相关的警告仍然存在。 所有其他配置保持不变(如前所述)、但问题尚未解决。 以下是警告:

    INFO:root:Iterating symbols, looking for prefix: ti_utils_build_GenMap_sym_CRC_CCFG
    WARNING:root:No symbols with prefix: ti_utils_build_GenMap_sym_CRC_CCFG found
    WARNING:root:No CRC was inserted into file
    INFO:root:Writing patched ELF file to cc2340r5_telit_fw.out

    除了前面提到的警告外、我在编译过程中也会遇到以下警告。 请您也说明一下:

    Invoking: Arm Linker
    "C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/bin/tiarmclang.exe" @"C:/ti/simplelink_lowpower_f3_sdk_8_40_00_61/source/ti/ble5stack_flash/config/build_components.opt" @"C:/ti/simplelink_lowpower_f3_sdk_8_40_00_61/source/ti/ble5stack_flash/config/factory_config.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O0 -DICALL_NO_APP_EVENTS -DCC23X0 -DNVOCMP_NWSAMEITEM=1 -DFLASH_ONLY_BUILD -DUSE_RCL -DFREERTOS -DNVOCMP_POSIX_MUTEX -gdwarf-3 -ffunction-sections -Wl,-m"cc2340r5_telit_fw.map" -Wl,-i"C:/ti/simplelink_lowpower_f3_sdk_8_40_00_61/source" -Wl,-i"D:/BAJAJ_K10_Module/ProjectsCodeSDK820_810_k10/volumecodebyeduard/codevolume/cc2340r5_telit_fw/Release/syscfg" -Wl,-i"C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/lib" -Wl,--reread_libs -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="cc2340r5_telit_fw_linkInfo.xml" -Wl,--rom_model -o "cc2340r5_telit_fw.out" "./syscfg/ti_ble_config.o" "./syscfg/ti_devices_config.o" "./syscfg/ti_radio_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_freertos_config.o" "./syscfg/ti_freertos_portable_config.o" "./SRC/CC2340R5_COMMON_LIBS/BLEAppUtil/bleapputil_init.o" "./SRC/CC2340R5_COMMON_LIBS/BLEAppUtil/bleapputil_process.o" "./SRC/CC2340R5_COMMON_LIBS/BLEAppUtil/bleapputil_stack_callbacks.o" "./SRC/CC2340R5_COMMON_LIBS/BLEAppUtil/bleapputil_task.o" "./SRC/CC2340R5_COMMON_LIBS/Drivers/NV/crc.o" "./SRC/CC2340R5_COMMON_LIBS/Drivers/NV/nvocmp.o" "./SRC/CC2340R5_COMMON_LIBS/MenuModule/menu_module.o" "./SRC/CC2340R5_COMMON_LIBS/Services/dev_info/dev_info_service.o" "./SRC/CC2340R5_COMMON_LIBS/Startup/ble_user_config_stack.o" "./SRC/CC2340R5_COMMON_LIBS/Startup/osal_icall_ble.o" "./SRC/CC2340R5_COMMON_LIBS/Startup/rom_init.o" "./SRC/CC2340R5_COMMON_LIBS/iCall/icall_POSIX.o" "./SRC/CC2340R5_COMMON_LIBS/iCall/icall_cc23x0.o" "./SRC/CC2340R5_COMMON_LIBS/iCall/icall_user_config.o" "./SRC/CC2340R5_COMMON_LIBS/iCallBLE/ble_stack_api.o" "./SRC/CC2340R5_COMMON_LIBS/iCallBLE/ble_user_config.o" "./SRC/CC2340R5_COMMON_LIBS/iCallBLE/icall_api_lite.o" "./SRC/PROJECT_ASSOCIATED_LIBS/PROJECT_TOP_LEVEL/main/app_main.o" "./SRC/PROJECT_ASSOCIATED_LIBS/PROJECT_TOP_LEVEL/main/main_freertos.o" "./SRC/app/AMSM_Apple_Media_Service_Manager.o" "./SRC/app/AMSP_Apple_Media_Service_Protocol.o" "./SRC/app/ANCSM_Apple_Notification_Center_Service_Manager.o" "./SRC/app/ANCSP_Apple_Notification_Center_Service_Protocol.o" "./SRC/app/ATCP_AT_Command_Parser.o" "./SRC/app/BCPT_Bluetooth_Communication_Packets.o" "./SRC/app/BTBCH_Bluetooth_Bootloader_Checksums.o" "./SRC/app/BTCM_Bluetooth_Configuration_Manager.o" "./SRC/app/BTUML_Bluetooth_Uart_Middle_layer.o" "./SRC/app/CALLM_Call_Manager.o" "./SRC/app/CONN_Connectivity.o" "./SRC/app/MM_Music_Manager.o" "./SRC/app/NOTM_Notifications_Manager.o" "./SRC/app/app_connection.o" "./SRC/app/app_data.o" "./SRC/app/app_pairing.o" "./SRC/app/app_peripheral.o" "./SRC/app/Profiles/DSM_Data_Stream_Manager.o" "./SRC/app/Profiles/data_stream_profile.o" "./SRC/app/Profiles/data_stream_server.o" "../cc23x0_app_freertos.cmd"  -Wl,-lti_utils_build_linker.cmd.genlibs -Wl,-llibc.a 
    warning #10247-D: creating output section ".log_data" without a SECTIONS specification
    Finished building target: "cc2340r5_telit_fw.out"
     

    此致、
    Shivam

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

    您好!

    明白了。 我认为、在8.10和8.40版本之间 、引入了 GenMap 符号以简化链接器文件修改。 您是否修改了您的链接器文件? 如果不是、那么您是否可以从最新的 SDK 中获取一个、而不是项目中使用的 SDK? 我相信这应该会解决你看到的新警告。

    此致、

    1月

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

    您好、Jan:

    是的、出于测试目的、我修改了链接器文件并将堆栈大小值更新为1200。 按照您的建议、我将链接器文件替换为最新 SDK 版本、该版本解决了我之前遇到的警告。 感谢您对此提供的帮助。

    但是、尽管所有其他规格都保持不变、但我仍然无法在 SDK 8.40版上运行代码。 您能调查一下这个问题吗?

    此致、

    Shivam

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

    尊敬的 Shivam:

    没问题! 您能否澄清您看到的行为? 应用程序是否启动? 如果调试应用并暂停执行、调试器会在哪里暂停?

    此致、

    1月

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

    您好、Jan:

    应用程序正在正确引导。 在本线程的上一个响应中、我提到在调试时、我观察到在App_StackInitDoneHandlerBLEAppUtil_init使用 SDK 8.40时、函数中不会调用回调。 经过进一步调查、我发现LL_ProcessEvent()文件中的函数ll.c未被调用。 调试程序无法在指定路径中找到源文件:
    C:\.conan\da6380\1\source\ti\ble5stack_flash\lib_projects\CC2340R5\OneLib\lib\ticlang\m0p/../../../../../../controller/cc26xx/ll/ll.c.

    我不确定、但此行为表明 BLE 堆栈可能正在主动运行、或者卡在其链路层处理中。

    此致、

    Shivam

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

    尊敬的 Shivam:

    我相信我以前看到过类似这样的行为。 您能否确保 SysConfig 中 RNG 模块中的全局参数与以下各项匹配?

    此致、

    1月

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

    您好、Jan:

    根据您的上述回答、我们成功集成了8.40 SDK、并解决了第一条消息中提到的断开连接问题。 感谢您的支持。

    此致、

    Shivam

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

    尊敬的 Shivam:

    很高兴听到! 如果没有与此迁移相关的其他问题、我将暂时关闭该线程。 如果您确实有任何与迁移相关的问题、请回复此消息以重新打开该主题。 否则、请随时打开新主题、我们将尽快为您提供帮助。

    此致、

    1月