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.

[参考译文] CC3135:主机驱动程序发生 SL_DEVICE_EVENT_FATAL_SYNC_LOSS 错误

Guru**** 2482225 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1293329/cc3135-sl_device_event_fatal_sync_loss-error-happens-with-host-driver

器件型号:CC3135

您好!

背景

我使用的 CC3135R Wifi 芯片、通过其 SPI 接口在定制硬件上与主机 NXP MCU 通信。

主机 MCU 使用 CC3135R 的接口 Simplelink 库 v3.0.1.71 (以前使用的是3.0.1.65、但行为相同)。

主机 MCU 嵌入 Azure RTOS (ThreadX/NetXduo/UsbX) 并在其顶部运行专有应用。 网络层由 Azure NetxDuo 处理、而不是由 Simplelink 库处理。

主机 MCU 还与蜂窝式调制解调器(UART 接口)通信、并通过 USB 与另一个板进行以太网通信。

问题

 加载蜂窝通信后、simplelink 会快速增大致命错误  SL_DEVICE_EVENT_FATAL_SYNC_LOSS。

但加载 WIFI 通信时不会出现此问题。

除此之外的另一个问题(但作为第一个问题的解决方案也应修复它)是 simplelink 库大部分时间未能重新启动(即使将序列 sl_stop / sl_start 重试次数尝试15次...)。

调查

在查看 TI 论坛上的类似问题时、我发现 RTOS 线程优先级定义对于让 simplelink 顺畅运行至关重要。 因此,我增加了运行 sl_Task ()的 Simplelink 线程的优先级,使其优先级高于 使用 Simplelink 驱动程序的线程。 这将 simplelink Sync 丢失错误情况减少到了问题部分中描述的情况(在此之前、仅 WIFI 加载了文件传输时也会发生问题)。

从这一点来看、我已经注意到、将 sync_pattern_timeout_in_msec 从50增加到300可以防止出现该问题(迄今为止)。 这是 Simplelink 驱动程序内部修改、因此不是解决方案、但我认为它可以很好地指示具体情况。

我知道该问题可能与在基于 Azure RTOS 的应用程序中集成 simplink 库有关。 我想这是一个计时问题、可以与线程优先级选择相关联、但我找不到这个问题的最终答案。

是否有人建议去哪里看看?

感谢你的帮助。

奥利维耶

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

    如果300ms 适用于您的平台、则只需使用它。 我想 Azure RTOS 中的某个东西会锁定调度程序超过50ms。

    我们可能已经将此值应用于移植层、但(我想)设计人员认为对于任何 RTOS 而言、50msec 都是安全的数字。

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

    尊敬的 Kobi:

    感谢您的回答。 我一开始没有考虑此选项、因为同一应用在不同的 MCU (来自同一产品系列、具有相同的 RTOS)上运行、这不存在与同步丢失相关的任何问题。 因此、我没有指出任何调度程序锁定状态、尤其是在我看来、对于 RTOS 来说、50ms 是一个相当长的时间。

    谢谢。

    奥利维耶

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

    我想您 可以检查 SPI 线路(使用逻辑分析仪)。 看一看您是否可以获得更多信息。

    50毫秒似乎足够长,但我不确定操作系统和应用程序的实施。