工具与软件:
大家好!
我们将 cc3220sf 与 Free RTOS 和 Simple Link 库配合使用来构建 WiFi 器件。 我们的器件可在 AP 和 STA 模式之间切换。
例如、器件处于 AP 模式。 我们调用 sl_stop 并通过 sl_WlanSetMode 将器件设置为 STA 模式、然后使用 sl_start 再次启动该器件、以使其使用这些凭据连接到 AP、从而重新启动 NWP (不是整个器件、而只是 NWP)。
因此、当我们采取行动时、有时甚至在一段时间之后、器件会遇到硬故障、实际上就是总线故障。 调查后发现此问题由以下顺序引起:
HttpClient_sendRequest -> sendRequest -> getStatus -> socketRecvTimeout -> SlNetSock_recv -> SlNetIfWifi_recv -> sl_Recv ->_SlDrvDataReadOp
_SlDrvDataReadOp 随后成功完成并返回 sl_Recv 、然后成功完成并返回到 SlNetIfWifi_recv 、而 SlNetIfWifi_recv 也成功完成 、但由于 POP 指令 r7寄存器中存在未定义的指令、无法返回到 SlNetSock_recv。
在左图上可以看到 POP 指令 r7寄存器指向0x2003f3f8并且该指令未定义。
此问题的原因未知、但似乎指向 NWP 协处理器重新启动、因为当器件未在工作模式(AP/STA)之间切换时、也即从未调用 NWP 重新启动时、不会发生此问题。
是否有人遇到过相同/类似的问题?