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.

[参考译文] CC3220SF:sl_Task:使用 POSIX 线程或 TI-RTOS 任务创建实例?

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/877195/cc3220sf-sl_task-create-instance-with-posix-thread-or-ti-rtos-task

器件型号:CC3220SF
主题中讨论的其他器件: CC1310

你好。

我刚刚成功完成了第一次尝试与 CC3220SF LaunchPad 通信并 ping LAN 中的一台计算机。

我从 TI-RTOS 内核 hello 示例中编写了代码、因为我想从头开始、确保实现可行的通信程序所需的最少组件、我研究了 HttpGet 演示以了解这些所需的组件和 API。

我习惯在 TI-RTOS 中对 CC1310进行编程、但没有 POSIX 层、因此我尝试以相同的方式编写 CC3220的代码: 而不是使用 POSIX、而是在 CC3220 SDK 的所有演示和 TI 驱动程序示例中执行、我认为在 SDK 的所有主机驱动程序和网络服务 API 中都是如此。

我能够使它正常工作、但在一种情况下除外:启动 sl_Task 函数。 如果我使用 TI-RTOS Task_construct(),NWP 无法开始工作,因此我保留了 POSIX pthread_create()替代选项,它起作用了。

是否有任何方法可以使用不带 POSIX 层的 TI-RTOS 启动 sl_Task? 也许就像重新定义 sl_Task 函数那样简单、这样它与 Task_construct()中的调用参数和类型相匹配? 但是、我不想更改我尚未编写的代码、这些代码属于频繁更改的 SDK。。。

因此、您是否建议在我们的新应用中使用 POSIX 层、因为它似乎是当今世界各地都在使用它、并且不会引起这样的问题?

谢谢!

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

    尊敬的 Juan:

    是的、建议在新应用中使用 POSIX。

    具体而言、sl_task (以及其他使用 SL 服务的线程)必须是一个 POSIX 线程、因为它使用 pthread_mutex。

    不能在 POSIX Pthread 和 SYS/BIOS 任务之间混合同步对象。 您只能使用 pthread_mutex 将 pthread 与其他 pthread 同步;您只能使用信标将任务与其他任务同步。 pthread 无法与任务通信。

    BR、

    Kobi

     

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

    谢谢、Kobi。

    然后、我将习惯 POSIX 环境。

x 出现错误。请重试或与管理员联系。