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.

[参考译文] SIMPLELINK-CC32XX-SDK:sl_Close () 和后续处理不稳定。

Guru**** 2668435 points

Other Parts Discussed in Thread: CC3135MOD, CC3120

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1588829/simplelink-cc32xx-sdk-sl_close-and-subsequent-processing-are-unstable

器件型号: SIMPLELINK-CC32XX-SDK
Thread 中讨论的其他器件: CC3135MODCC3120

sl_Close() 和后续处理不稳定。

我尝试使用 CC3135MOD 在 STA 模式下与第三方 SoC 建立 WiFi 通信。 SoC 和 NWP 之间的通信通过 SPI 进行。
调用 sl_NetAppDnsGetHostByName() 以解析 HTTP 通信的 IP 地址后、
发生以下套接字处理序列:


sl_Socket ()→sl_Connect ()→sl_Send ()→sl_Recv ()→sl_Close ()。


sl_Close() 在中途停止时、调用 SimpleLinkFatalErrorEventHandler()。
另外、如果 sl_Close() 继续到末尾而不停止、则调用 sl_NetAppDnsGetHostByName () 以启动新的 HTTP 通信会在中途停止。 在这种情况下、不调用 SimpleLinkFatalErrorEventHandler()。

您能告诉我如何解决这个问题吗?

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

    您好、

    你能分享  sl_Close () 中途停留的意思吗?

     你得到了什么 SimpleLinkFatalErrorEventHandler ()? 我的意思是什么类型/ ID?

    Shlomi

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

    尊敬的 Shlomi:

    当 sl_Close () 停止在中间位置时、这意味着 0x9402 被写入 NWP、0x1402 从 NWP 返回、然后 0x1010 不会返回。 SimpleLinkFatalErrorEventHandler() 在返回 0x1402 后大约一分钟被调用。
    在这种情况下、SimpleLinkFatalErrorEventHandler() 的 ID = 5、Code = 0x1010。

    另外、如果 sl_Close () 不在中间停止、则在下一个 HTTP 通信中使用 sl_NetAppDnsGetHostByName () 将 0x9C20 写入 NWP、并且 0x1C20 从 NWP 返回、但不返回 0x1820。
    在这种情况下、不调用 SimpleLinkFatalErrorEventHandler()。

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

    您好、

    如果您没有收到套接字异步事件并在命令超时时时失败、则可能意味着 NWP 已置位(我认为情况不是这样,因为您会收到 SL_DEVICE_EVENT_FALATUAL_DEVICE_ABORT) 、或者主机和 CC3120 之间的同步丢失。

    只是为了确保 NWP 仍然处于活动状态、您可以拉取 NWP 日志(您是否有此选项? 您可以在这个论坛中找到许多文章来解释如何做到这一点)。  

    对于 同步 问题、最好是查看具有逻辑的 SPI 通信(SALEAE 是一款不错的工具)。

    此致、

    Shlomi

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

    尊敬的 Shlomi:

    我得到了日志。

    如何发送?

    我可以将日志文件附加到此通信中吗?

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

    当然、您可以附加日志。

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

    尊敬的 Shlomi:

    我附加了日志。

    有两个日志。

    首先,我会在 sl_Close() 失败时附加日志。

    e2e.ti.com/.../teraterm_5F00_20251121_5F00_1.log

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

    尊敬的 Shlomi:

    我已经附加了第二个日志。

    这是 sl_Close() 完成时的日志。

    此致。

    e2e.ti.com/.../teraterm_5F00_20251121_5F00_2.log

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

    您好、

    感谢您的日志。

    我看不到该案中有任何断言。

    我也看不到任何向下到 NWP 的命令。 这是预期的、还是应用程序尝试发送新命令?

    至少从 NWP 的角度来看、器件似乎处于运行状态并等待进一步的命令。

    另外、我可以看到事件 0x1010 被触发回主机处理器、因此您应该已获取该事件。

    主机处理器可能会卡住某个位置? 如果在发生这种情况时逐步进行调试、该怎么办? “你在担心我吗?

    我不确定这可能是主机 NWP 同步。

    正如我提到的、Logic Captures(如 Saleae)将提供一些信息。

    无论如何、似乎您正在使用一个非常旧的 SP、4.2.0.3、即 2019 年 4 月开始。

    我并不是说这是问题、但你应该考虑升级到最新版本。

    此致、

    Shlomi

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

    尊敬的 Shlomi:

    感谢您检查日志。

    您说事件 0x1010 已返回主机处理器、但第二个日志 (TeraTerm_20251121_2.log) 中就是这种情况。

    在这种情况下、我们还可以确认 0x1010 是否返回到主机处理器。

    但是、当我们随后再次尝试进行 HTTP 通信时、在向 NWP 发送事件 0x9C20 后、事件 0x1C20 返回到主机处理器、但事件 0x1820 未返回到主机处理器。 (在将 0x9C20 返回到主机处理器后、NWP 没有响应。)

    似乎没有向 NWP 发送命令的原因是它正在等待来自 NWP 的响应 (0x1820)。

    此外、在第一个日志 (TeraTerm_20251121_1.log) 中、事件 0x1010 未返回到主机处理器。

    相反、返回的 FatalErrorEventHandler 带有代码= 0x1010。

    因此、在第一个日志中、很明显出现了 FatalError 所指示的问题。 在第二个日志中、sl_Close () 已完成一次、但主机处理器未确认后续 HTTP 通信中的异步响应 (0x1820)、因此不清楚 NWP 处于什么状态。

    您能否再次查看有关这些问题的日志?

    顺便说一句、我发送的两个日志都是由同一个程序运行的。

    即使是同一个程序、行为也可能会发生变化、因此我想确认 NWP 在每种情况下的行为。

    此致、

    前田大介

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

    您好、

    可能我不够清楚、在失败的情况下、我确实看到从 NWP 返回的 0x1010、并且 NWP 正在等待下一条命令。

    在“好情况“中、返回 0x1010、正如您在应用程序中看到的那样、并且还返回 GetHostByName、即 0x1C20 和 0x1820。 NWP 行为正常。

    您遇到的错误可能是由于主机接口上的同步丢失。

    正如我还提到的、您使用的是非常旧的 SP、我建议将其更新为最新版本、但这可能不是原因。

    如果在 SPI 线路(如 Saleae)上进行逻辑捕获、则有助于识别这些线路上发生的情况。

    我建议捕获 SPI 和 IRQ 线路。

    此致、

    Shlomi