您好!
背景 :
我使用的 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 库有关。 我想这是一个计时问题、可以与线程优先级选择相关联、但我找不到这个问题的最终答案。
![]()
是否有人建议去哪里看看?
感谢你的帮助。
奥利维耶