我将使用 CC3100与 Cortex M3 MCU (MAX32600)配合使用。 在我的应用中、我连接到 WiFi 网络、打开一个非阻塞 TCP 套接字连接、并使用 sl_Recv 每~100ms 检查套接字上接收到的数据。 在插座打开5到10分钟之前、一切都很好、此时驱动程序在函 数_SlDrvRxHdrRead 中的1595行挂起命令响应:
/*在前4个字节与后4个字节不同时读取*/ while (*(_u32 *)&pBuf[0]=*(_u32 *)&pBuf[4]) { NWP_IF_READ_CHECK (g_PCB->FD、&pBuf[4]、4); }
我正在与运行频率为1MHz、没有 DMA 的 SPI 接口通信。 我使用的是 SDK 1.2.0和 Service Pack 1.0.1.6-2.7.0.0。 CC3100BOOST 和 CC3100定制板的这种行为是相同的。 我没有观察到任何会导致 CC3100失去状态的重大电源异常。
我进行了逻辑捕获、显示了通道4上 IRQ 线路的 SPI 流量。 第一个图像显示第二个到最后一个命令和响应。 第二幅图像显示了未收到正确响应的最后一条命令。 我已附加完整的 Saleae 逻辑捕获文件。 在 BAD 命令上、IRQ 线路几乎在发送命令后立即生效、但它看起来不假。
如果有任何帮助,将不胜感激。