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.

[参考译文] CC3100:无响应 Simplelink 驱动程序

Guru**** 2529560 points
Other Parts Discussed in Thread: CC3100

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1137987/cc3100-unresponsive-simplelink-driver

器件型号:CC3100

您好!

我们注意到、我们的器件有时会进入 simplelink 驱动程序无响应的状态。

  • 如果 sl_ExtLib_MqttClientSend().通过任何后续尝试成功发布尝试失败并出现错误代码-5 (MQP_ERR_PKT_AVL)、则问题开始出现。
    • 器件 会一直处于该状态、直到发生复位

症状:

  • 复制是零星的。 这种情况很少见。 有时它需要几次尝试、有时 需要数百次
  • 一些低优先级线程正在被标出。
  • 关闭 AP 不 会触发断开事件。 即 WifiMgr__SimpleLinkWlanEventHandler()、不调用。 在 AP 中、器件未显示为已连接。
  • 由于缺少 ping、MQTT 断开由代理启动(在我们的 BER 上可见)。
  •  处于    此状态时、SL 驱动程序不会调用任何已注册的回调(例如 sl_ExtLib_MqttEvent 和 sl_ExtLib_MqttDisconn)。 即、即使我们看到代理已断开连接、SL 驱动程序也不会通知器件情况。
    • 我们从未看到  SL_MQTT_CL_EVT_PUBACK 过或SL_MQTT_CL_EVT_PINGRSP 事件。 同样、因为 在该状态下、sl_ExtLib_MqttEvent 回调永远不会被调用。

调试似乎表明 SPI 通信存在问题。 请参阅以下调用堆栈:

  HAL_SPI_TransmitReceive

  HAL_SPI_Receive

应用级功能

  CC3100Spi_SpiRead

SL 驱动程序函数

    3._SlDrvRxHdrRead

  4._SlDrvMsgRead

  5._SlDrvMsgReadSpawnCtx

  6._SlInternalSpawnTaskEntry

Simplelink 驱动程序是否可能卡在打开状态的事件或互斥量/信标?  

版本信息:

1.0.1.15-2.14.0.0

NWP:2.14.0.0
芯片固件:1.6.0.2
芯片 PHY:1.0.3.37

谢谢你

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

    看起来 NWP 会以某种方式卡住( 不太可能是 SPI 移植出现问题)。 我认为这 不是一个已知问题。

    您能否提供 NWP 日志? (/cfs-file/__key/communityserver-discussions-components-files/968/CC3100-_2600_-CC3200-Capture-NWP-Logs-_2D00_-Texas-Instruments-Wiki.pdf)

    是否在 SimpleLinkGeneralEventHandler 中打印接收到的 A-SYNC 事件? (如果是、您是否在问题出现之前看到发生了任何此类事件?)

    是否已尝试使用 sl_Stop/sl_Start 重置 NWP (在此之后以及重新连接到 AP 后、需要重新连接到 MQTT 代理)?

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

    我们正在打印异步事件、但我们根本看不到这些事件中的任何一个会被触发(在这种状态下)。

    我尚未尝试 sl_stop ()/start()周期。 我将执行此操作、并在能够重现 NWP 日志时捕获此日志。

    谢谢你

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

    以下是 NWP 日志:

    e2e.ti.com/.../NWP_5F00_Capture_5F00_1.txt

    问题开始 时间大约为~4分钟。   在该状态下、NWP 输出完全停止。

    发生此问题时调用 sl_stop()-> start()似乎冻结了所有内容。

    我还注意到这篇老文章:https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/528514/issues-with-cc3100-on-stm32f207-using-freertos?tisearch=e2e-sitesearch&keymatch=sl_WlanEvtHdlr#。 WiFi 和锯线的建议堆栈大小是多少? 目前、我们的堆栈大小  分别设置为2048和1024。 这是太低了吗?

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

    您的主机代码似乎仍在运行、因此我认为堆栈不是问题所在。 您能否使用调试器暂停执行并检查代码所在的位置。

    什么意思是 NWP 复位会冻结所有内容?  是否返回 SL_Stop/Start? (有错误?) 收到 IP 获取指示后、您需要重新连接到 MQTT 服务器。 由于该问题与缺少缓冲区有关、因此最好关闭 MQTT (调用 sl_ExtLib_MqttClientCtxDelete 和 sl_ExtLib_MqttClientExit)并重新启动它(即、基本上再次运行 mqttClient 线程-如果您基于我们的 mqttClient 示例)。

    我在 NWP 中看到了一个问题、但它在连接时立即发生、NWP 从该问题中恢复、因此它似乎与此处的问题无关。  

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

    我共享了停止调试器时所执行的调用堆栈。  似乎总是停止尝试通过 _SlDrvRxHdrRead 上面的调用堆栈3-6从 CC3100读取内容。  

    每当我手动调用 sl_Stop -> sl_Start 时、器件似乎会卡住。 即、无法与通信。 我将尝试更深入地探讨这个问题、并将在此处更新我发现的问题。

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

    因此可能是主机驱动程序的问题。

    您是否使用了最新的1.5 SDK?

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

    是的、我使用的是最新的1.5 SDK。

    由于我无法通过 FW 与器件通信、是否有方法检查器件是否仍处于活动状态? (例如、通过探测、监听等)。  

    此外,Simplelink 驱动程序如何知道中介程序何时断开连接? 它是否在内部跟踪保持活动超时并成功执行 ping 操作?

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

    MQTT 使用 keepalive 来标识与代理的断开连接。

    驱动程序中有互斥量。 您对 CC3100平台移植有多大信心?  

    这肯定是移植问题。

    您是否说发生问题时 NWP 日志停止?  

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

    是的、一旦我们的器件 进入此状态、NWP 日志就会突然停止。

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

    您能否提供 NWP 日志的新实例? 我想检查问题是否发生在同一个地方。

    NWP 日志的停止可能 指示 NWP 崩溃(不打印任何断言消息)、但另一方面、  sl_Stop/sl_Start 本应已恢复此类问题。

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

    因此、我设置了一个定制应用程序 、 sl_ExtLib_MqttClientSend每2秒发布一次消息。 24小时后、应用程序未重现此问题。  我 相信这是我们规范中的某种竞争条件。 我将进一步调查并在需要时重新开一个 TT。 谢谢你  

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

    好的。 感谢您的更新