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.

[参考译文] RTOS/CC2650STK:双角色/多角色-外设和观察器-堆栈崩溃问题

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2650STK

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/643204/rtos-cc2650stk-dual-multi--role---peripheral-and-observer---problem-with-crashing-stack

器件型号:CC2650STK
Thread 中讨论的其他器件: BLE-STACK

工具/软件:TI-RTOS

您好!

向外设添加观测器功能时遇到问题。 以下是我的情形:

我的 cc2650stk 上有一个用作双外设的应用。 (让我们将此器件称为 A)

当被连接至一个中央(器件 B)时、它们一起等待一个触发事件、并且只要触发事件出现、器件 A 和 B 就以持续的间隔交换信息。

我想在该设置中添加一个信标、当存在该设置时、该设置会提供触发事件。

基本而言:

1) 1)开始:器件 A ->连接到器件 B ->已连接

2) 2)连接时:设备 A ->扫描信标

3)扫描找到信标时:设备 A ->向设备 B 发送通知

4)如果扫描停止事件->在任务上下文中立即重新启动扫描

在添加扫描功能之前、应用程序工作正常。

我的问题是:

如果我连续且不成功地扫描一段时间、我会得到一个不精确的总线访问故障、这是由双栈任务引起的(当我没有观测器功能或唯一观测器运行时不会发生这种情况)

如果我扫描成功一段时间(存在信标、因此与 B 进行了通信)、我会从堆栈中获得 hal_dassert 中止。 (没有扫描就不会发生的事情)

如果我 在20到30秒的间隔内打开/关闭信号灯、一切看起来都正常...

我真的不知道如何解决这个问题。

如何将观测器添加到外设:

我的 basicall 将外设和观测器的角色任务合并为一个新的角色任务(并将这些事件的处理功能添加到类似于 simple_peripheral/simple_observer 等的应用任务中)。

我使用 peripheral +观测器角色选项重新编译了堆栈。

禁用已看到广播的过滤(以便我可以从同一信标看到连续流)。

请帮助。

此致

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

    尊敬的 Marc:

    在您的应用中添加观测器功能时、似乎出现了问题。

    下面是一个将执行外设和观测器角色的开箱即用示例应用:

    也许您可以将此应用程序引用到您的、并查看问题所在的位置。