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 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 环境。