Hello,
We've noticed that our devices sometimes enter a state where the simplelink driver becomes unresponsive.
- Issue starts to happen after a successful publish attempt via
sl_ExtLib_MqttClientSend().
Any subsequent attempts fail with error code -5 (MQP_ERR_PKT_AVL).- The device gets stuck in this state until a reset occurs
Symptoms:
- Reproduction is sporadic. It's rare. Sometimes it takes a few tries, other times 100s
- Some low priority threads are being starved.
- Powering off the AP does not trigger the disconnect event. I.e., the
WifiMgr__SimpleLinkWlanEventHandler()
is not called. In the AP the device is not shown to be connected. - MQTT disconnect initiated by broker (seen on our BE) due to lack of pings.
- The SL driver never invokes any of the registered callbacks (e.g., sl_ExtLib_MqttEvent and sl_ExtLib_MqttDisconn) when in this state. I.e., even though we see that the broker has disconnected, the SL driver never notifies the device that that is the case.
- We never see the
SL_MQTT_CL_EVT_PUBACK
orSL_MQTT_CL_EVT_PINGRSP
events. Again, because the sl_ExtLib_MqttEvent callback never gets called when in this state.
- We never see the
Debugging seems to present that there's something wrong with the SPI comms. See the following call stack:
0. HAL_SPI_TransmitReceive
1. HAL_SPI_Receive
Application Level Functions
2. CC3100Spi__SpiRead
SL Driver Functions
3. _SlDrvRxHdrRead
4. _SlDrvMsgRead
5. _SlDrvMsgReadSpawnCtx
6. _SlInternalSpawnTaskEntry
Is it possible that there is an event or mutex/semaphore that the Simplelink driver is stuck on?
Version Info:
1.0.1.15-2.14.0.0
NWP: 2.14.0.0
Chip FW: 1.6.0.2
Chip PHY: 1.0.3.37
Thank you