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-LAUNCHXL:sl_Recvfrom (阻塞)

Guru**** 2477065 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1441636/cc3220sf-launchxl-sl_recvfrom-blocking

器件型号:CC3220SF-LAUNCHXL

工具与软件:

我从任务中调用 slRecvFrom (处于阻塞状态)并删除该任务。
然后重新启动网络处理器。 我会再次创建套接字。
但 sl_Recvfrom 会返回错误-9。
这是什么意思、如何解决?

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

    *返回错误-8.

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

    您好!

    -8表示套接字命令正在执行。

    此测试的目的是什么?

    如何重新启动 NWP? sl_stop()后跟 sl_start()?

    如果是、是否在 sl_stop()上使用超时?

    Shlomi

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

    我将使用 sl_stop (200)超时。但问题是成功创建了新套接字、发送函数也正常工作。 当接收到第一个数据包时、它进入-8错误循环或停留在 recv 中的某个位置。
    我在这里还遗漏了什么吗?
    我使用的是 FreeRTOS。

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

    本次测试的目的是、我想在一段时间内关闭和打开新的套接字。 但只有我第一次创建的套接字才能正常工作。

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

    这个问题也发生了,当我不重新启动,如果我关闭和打开一个新的插槽也发生了这种情况。

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

    听起来无论是否重新启动 NWP、每次都得到-8的值。

    这是在您第一次打开套接字时发生的吗? 第一次打开套接字后、您应该能够发送/接收任何问题。

    您使用的是哪些服务包版本?

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

    不是第一次。 我可以发送和接收、而不会 有任何问题。
    我的服务包版本是 sp_3.22.0.1_2.7.0.0_2.2.0.7.bin
     我还使用 FreeRTOS。

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

    是否有此问题的更新?

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

    所以你第一次打开一个套接字,进行一些数据交换,然后关闭套接字并重新打开它,然后它卡在 sl_Recv ()? 它是否总是在第二次发生?

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

    有。 它总是发生。-8在第二次,第三次以后-9。
    请尽快帮助我解决此问题。
    CCS 版本:12.7.1.00001  

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

    您好!

    我使用 network_terminal 进行本地测试、并且能够使用 UDP recvfrom API、没有任何问题。

    请分享您的代码或备选尝试对 network_terminal 示例进行编程、然后重新测试。

    此外、最好生成 NWP 日志来查看引擎盖下方是什么。  

    我们在许多文章中介绍了如何获取日志。

    作为回顾、 您应该将以下内容添加到您的代码中以多路复用该行:

    #include

    #define PIN_62 0x0000003D
    #define PIN_MODE_1 0x00000001

    然后在 mainThread()的 spi_Init()后添加:

    /* NWP 日志*/
    MAP_PinTypeUART (PIN_62、PIN_MODE_1);

    其余过程如 第20.1章 https://www.ti.com/lit/ug/swru455m/swru455m.pdf?ts = 1638204986283&ref_url=https%253A%252F%252Fwww.google.com%252F 中所述

    请注意、在921600bps 二进制模式下捕获二进制流非常重要。

    Shlomi

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

    在此项目中、使用 pthread 创建 sl_task。 其余所有使用 simplelink 函数的任务都是使用 xTaskCreate ()创建的。
    这会造成任何同步问题吗?

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

    此外、是否还应在 pthread 内以分离状态创建 sl_task?

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

    对于这些问题、您可以遵循 SDK。

    • xTaskCreate()专门用于 FreeRTOS。 当您从代码中调用 pthread_create()时、它将进入使用 xTaskCreate 的 FreeRTOS 实现或 tirtos 实现。 所以只需调用  pthread_create()
    • sl_task 像其他任务一样、默认可加入、而不分离。 如果分离、当创建它的任务存在时、它将异常退出

    Shlomi