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.

[参考译文] CC3120:如何从同步丢失事件中恢复

Guru**** 2539500 points
Other Parts Discussed in Thread: CC3120

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/748020/cc3120-how-to-recover-from-a-sync-loss-event

器件型号:CC3120

您好,Champions,

  在尝试从 EMC 测试期间发生的"同步丢失"恢复时,我们面临一个问题,导致 CC3120卡滞。

由于在 EMC 测试用例期间、软件会检测到 CC3120的"同步丢失"事件、 因此我们会执行 CC3120恢复重启序列。

在  "SlNetSock_select" API 超时之后,一些 MCU 的任务也会立即重新启动。

在重新启动 MCU 的任务之前、每个绑定的套接字都已关闭 、但 SlNetSock_Close  因 errno =-2005而失败。

 

重新启动过程完成后  ,SlNetSock_create() 将起作用。

如果重新启动过程重复多次,  slNetSock_create()的工作时间与可用的套接字描述符相等。

在同步丢失事件的情况下,主机 驱动程序似乎仍在使用先前的套接字结构,无法释放这些资源。

如果在网络处理器正常工作时触发 CC3120的恢复重启序列,则不会出现此问题(无同步丢失)

以下是 恢复重新启动序列的详细信息;

*同步丢失处理序列

1-如果检测到同步丢失,则将事件 EV1发送到服务器任务(以指示任务应用恢复重新启动)

2 -服务器内部任务、SlNetSock_select 超时、

3-在服务器内部任务中,关闭返回-1,错误号=-2005

3-等待服务器任务终止

4 - sl_Stop (200 /*ms*/);

5- sl_Start(); --> CC3120重新启动

6 -启动新的服务器任务。

7 -服务器任务中的步骤1 (s (n)= SlNetSock_create) 打开新套接字、

               其中  s (n)= s (n-1)+ 1

8 -应用程序将一直运行、直到序列重复足够多的时间、从而使可用的文件描述符饱和

 

*服务器任务  

1 - s (n)= SlNetSock_create ()

2 - SlNetSock_SETOPT (s、..、SLNETSOCK_OPSOCK_NON_BLOCK...) +绑定+侦听

3 - SlNetSock_select

4 -接受

3A/4a 如果检测到事件 EV1、请关闭(s)、退出任务

  

在这种情况下,我们如何确保资源得到适当清理?

谢谢、

Paolo

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

    您是否正在使用最新版本的主机驱动程序? 最新的3.0.1.41主机驱动程序版本对 sl_Stop()执行了多项修复,旨在解决因 sl_API_aborted 条件而重新启动 NWP/主机 驱动程序时出现的问题行为。 您可以在新的 Wi-Fi 插件中找到最新的主机驱动程序文件:
    www.ti.com/.../simplelink-wifi-cc3120-sdk-plugin

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

    我假设您已经解决了您的问题、因为我没有听到您的反馈。 如果没有、请随时在此主题上发帖或打开有关问题的新主题。

    此致、
    Michael