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:了解 BLEAppUtil_stackRegister () 在 DATA_STREAM 示例中的用途、以及在使用 BLE API 之前是否必须在线程中调用它

Guru**** 2910380 points

Other Parts Discussed in Thread: CC2340R5

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1621231/cc2340r5-understanding-the-purpose-of-bleapputil_stackregister-in-data_stream-example-and-whether-it-must-be-called-in-a-thread-before-using-ble-apis

器件型号: CC2340R5

尊敬的 TI 专家:

我目前正在使用 CC2340R5、并探索 data_stream SimpleLink 低功耗 F3 SDK(8.10.01.02 版)中的示例。 在应用程序代码中、我注意到了函数 BLEAppUtil_stackRegister() 、并希望更深入地理解其作用。

我的具体问题是:

  1. 它到底有什么 BLEAppUtil_stackRegister() 作用?  顾名思义、BLE 栈似乎是在应用程序中注册的、可能用于事件处理或上下文初始化。 您能否提供其用途和典型用法的详细说明?

  2. 我是否需要在打算使用 BLE API(例如 GATT 操作,连接管理)的每个线程(任务)中调用此函数?  或者在系统初始化过程中的单个调用(例如,在中)是否 main()足以允许任何线程安全地调用 BLE 功能? 换句话说、是否 BLEAppUtil_stackRegister() 建立线程‑安全访问 BLE 栈所需的 PER‑线程上下文?

  3. 是否有任何文档或应用手册介绍了线程模型以及如何在 CC2340R5 上的多‑任务处理环境中正确使用 BLE API?  我在其他 BLE 栈中看到了类似的概念、在这些概念中、在进行 API 调用之前、您必须将栈“附加“到线程、我想确保遵循正确的方法。

我使用以下设置:

  • SDK:  simplelink_lowpower_f3_sdk_9_14_02_16

  • IDE:CCS

  • 硬件:LP-EM-CC2340R5

非常希望对相关文档进行任何澄清、提供代码示例或提供指向这些文档的指针。 感谢您的支持!