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:在收到通知后、启用扫描将进入 faultISR

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1437876/cc2340r5-after-receiving-the-notification-enabling-scan-will-enter-faultisr

器件型号:CC2340R5

工具与软件:

CCS 版本:12.7.0.00007  

SDK:8.10.01

项目: basic_ble_LP_EM_CC2340R5_freertos_ticlang

我将 CC2340R5测试为中心侧、以从外设侧接收通知数据。 我发现、当我接收到超过300个数据包(每个数据包有20个字节)时、调用 BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) callbackStartScan);将导致 CC2340R5进入 faultISR、每次通知后、我将执行 GATT_FREE (&gattMsg->stack)、以确保内存已在下图中正常显示、并确保内存已释放

如果事务少于300个、则不会发生这种情况。

然后、我在调用 bLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) callbackStartScan)后使用断点执行单步执行;发现该断点似乎位于 bleapputil_task.c 的 void *BLE4/ISR (void faultarg)中、以执行 bLEAppUData_free (pptr)、然后输入了 Util_Task




是因为我的堆栈溢出? 我相信这不是简单地启动扫描造成的。 如果调用了其他蓝牙函数、也会发生这种情况。

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

    您好!

    感谢您联系我们。 我们将仔细研究您的问题、并尽快与您联系。

    此致、

    1月

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

    我已经解决了这个问题、

    谢谢

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

    您好!

    很高兴听到。 我要将该主题标记为已关闭。 如果您遇到任何其他问题、请随时创建新主题、我们将提供提示支持。

    此致、

    1月