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.

[参考译文] CC2674P10:如何正确设置任务优先级?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1432257/cc2674p10-how-to-prioritize-tasks-correctly

器件型号:CC2674P10

工具与软件:

你好
我将基于多角色示例开发一个项目。 我的问题是如何正确设置优先级。
假设我有三个任务。

1. ICall 任务。 我假设此任务负责与无线电信道设备进行交互。 其优先级为5。
2.多角色任务。 这是一项处理来自射频堆栈的传入事件的用户任务。 也就是说、它从服务中读取数据、发送通知等 其优先级为4。
3.协议任务。 此任务向多角色任务接收/发送处理后的数据、以便与另一个器件通信。 其优先级目前为7 (最高)。

如果由于某种原因任务3中的数据处理需要很长时间、则由于高优先级、将不会调用任务1 (ICall)、则不会发送活动的连接确认数据包。 因此、另一方可以单方面终止连接。
我假设由于高优先级3、在这段期间、连接将断开、任务1甚至不知道断开连接的情况。

设置任务优先级的规则是什么?

在以任何方式与射频堆栈交互的任务中、ICall 任务是否应该具有最高优先级?

是否可以增加 ti_ble _config .h 文件中的某些参数、该参数将告诉两侧等待足够长的时间而不交换数据包(例如5-10秒)并且不断开连接。

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

    您好!

    感谢您联系我们。 我们会查看您的问题、并尽快回复您。

    此致、

    1月

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

    您好、Nick。

    感谢您的咨询。

    我们建议让 ICall (BLE 堆栈) 任务具有最高优先级、避免出现您所描述的情况。 iCall 任务的优先级默认设置为5、使用在初始化 iCall 后运行的 iCall_createRemoteTasks()函数。 虽然这可能不是您所描述的确切内容、但我建议您看看:

    • 连接监控超时:两个成功连接事件之间的最长时间如果该时间过去而没有成功的连接事件、器件将终止连接并返回至未连接状态。
    • 外设延迟:此参数使外设能够选择跳过多个连接事件。 该功能为外设提供了一定的灵活性。 如果外设没有要发送的任何数据、它可以跳过连接事件、保持睡眠状态并节省电量。 外设会根据连接事件选择是否唤醒。 外设可以跳过连接事件、但跳过的次数不得超过外设延迟参数所允许的次数、否则可能导致连接失败。

    BR、

    David。