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.

[参考译文] CC2640R2F:创建多任务处理的一些问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1311681/cc2640r2f-some-issues-with-multitasking-creation

器件型号:CC2640R2F

嗨、团队,

 客户想询问在创建多任务处理过程中遇到的一些问题。

iCall_MAX_NUM_ENTIES=6 ICALL_MAX_NUM_TASKS=3在应用程序中设置 ble5_simple_peripheral_cc2640r2lp_app_FlashROM_StackLibrary.opt、

1.ICALL_MAX_NUM_TASKS=3是堆栈任务、GAP 任务和用户定义的任务。 总共有三个、但为什么 ICALL_MAX_NUM_ENTIES 为6? (3个任务客户端和1个 ICall 服务器不应该是4个?)

2.是否必须满足 OSAL_MAX_NUM_PROVISION_TASKES +1 =ICALL_MAX_NUM_TASKS? +1代表什么? 我将 OSAL_MAX_NUM_PROVISION_TASKS 设置为2、将 ICALL_MAX_NUM_TASKS 设置为4、程序仍然可以运行、OSAL_MAX_NUM_PROVISION_TASKS +1意味着<=ICALL_MAX_NUM_TASKS?

3.但在 ble5_simple_peripheral_cc2640r2lp_app 示例中、我没有看到 simple_peripheral_cc2640r2lp_app 等三个任务的初始化。 它只明确给出了两个。 为什么会这样呢?

4.创建多任务时、ICALL_MAX_ENTIES、ICALL_MAX_TASK 和 OSAL_MAX_PROVISION_TASK 都应 Call_Sync 被修改+1、但如果我创建的任务函数无法执行 Pend_le、则不会调用现有的 SimplePeripheral_enqueMsg Call_Sync? 无需+1?

谢谢和最好的问候,

约兰德

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

    尊敬的 Yolande:

    感谢您的联系!  我们将对此进行研究、并尽快与您联系。 为了帮助我们更好地提供支持、您能否 与我们分享客户正在使用的 SDK 版本?

    此外、您能否指定客户使用的完整器件型号、如果是汽车级器件?

    谢谢。

    卢克

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

    您好,Luke,

    客户使用简单的 LINK_cc2640r2_SDK_4_20_00_04、而不是汽车设备。

    谢谢和最好的问候,

    约兰德

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

    您好!

    1.ICALL_MAX_NUM_TASKS=3是一个堆栈任务、一个 GAP 任务和一个用户定义的任务。 总共有三个、但为什么 ICALL_MAX_NUM_ENTIES 为6? (3个任务客户端和1个 iCall 服务器不应该是4个?)

    iCall_MAX_NUM_ENTIES 表示使用 iCall 的最大实体数、包括服务实体和应用程序实体。 您可能需要查看有关堆栈配置的文档以了解更多详细信息。 https://software-dl.ti.com/simplelink/esd/simplelink_cc2640r2_sdk/5.30.00.03/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/stack-configuration-cc2640.html#stack-configurations

    2. 是否必须满足 OSAL_MAX_NUM_PROVISION_TASKES +1 =ICALL_MAX_NUM_TASKS? +1代表什么? 我将 OSAL_MAX_NUM_PROVISION_TASKES 设置为2、将 ICALL_MAX_NUM_TASKES 设置为4、程序仍然可以运行、OSAL_MAX_NUM_PROVISITY_TASKES +1意味着<=ICALL_MAX_NUM_TASKS_STARS]

    主要要求是确保访问 ICall 的任务和实体的数量保持正确(即访问 ICall 的任务数不超过预定义的插槽数)。  

    将 ICALL_MAX_NUM_TASKS 设置为4、主要是定义不会使用的额外插槽。 因此程序预计可以正常运行、但浪费了一点 RAM 存储器。

    3. 但在 ble5_simple_peripheral_cc2640r2lp_app 示例中、我没有看到 simple_peripheral_cc2640r2lp_app 等三项任务的初始化。 它只明确给出了两个。 为什么是这样?

    我想这一点以前已经得到了解答-并非所有的 ICall 实体都是任务。

    4. 创建多任务时、ICALL_MAX_NUM_ENTIES Call_Sync、ICALL_MAX_NUM_TASKES 和 OSAL_MAX_NUM_PROVISION_TASK 都应被修改为+1、但如果任务 I CREATE 的任务函数未执行 Event_pend、未使用、或调用 SimplePeripheral_enqueueMsg、则使用现有的 Call_Sync 函数。 无需+1?

    与之不同的是、如果任务访问 iCall 结构、则应启用 iCall、这意味着应调用 iCall_registerApp ()、并获取 ICALL_MAX_NUM_ENTRIES、ICALL_MAX_NUM_TASKS 和 OSAL_MAX_NUM_ENABULT_PROVISION_TASK 的值。
    如前所述、某些 ICall API 可能在 SimplePeripheral API 中"隐藏"。

    我希望这将有所帮助、

    此致、

    [/quote]