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.

CC3100MODBOOST: recv() and socket() error -100

Part Number: CC3100MODBOOST

I'm using CC3100MODBOOST boards in transceiver mode.  After running for quite a while, the transmitting board returns a error -100 on recv() and does not recover.  When I close the socket and try to allocate a new one I keep getting error -100 from the socket() call.

Error -100 is not listed in socket.h and I'm unsure how to recover from this error.  Can you help me understand the meaning of this error code?

ID(67108864) FW(31.1.5.0.10) PHY(1.0.3.37)
NWP(2.12.2.8) ROM(13107) HostDrv(1.0.1.11)

Socket is allocated as follows:

socket( AF_RF,
               SOCK_DGRAM,
               3);

but I've also seen this with SOCK_RAW as well.

  • Hi Patrick,

    Did you get the "SimpleLinkGeneralEventHandler()" invoked before the you start getting the "-100"?

    Can you print the event ID (pDevEvent->Event) as well as the following:

    UART_PRINT("[GENERAL EVENT] - ID=[%d] Sender=[%d]\n\n", pDevEvent->EventData.deviceEvent.status, pDevEvent->EventData.deviceEvent.sender);

    The issue can be related to a corrupted data read from the host SPI or an internal error in the NWP. 

    Typically error like this requires an NWP reset (sl_Stop/sl_Start) for recovery. How frequent is this issue? 

    Br,

    Kobi

  • Sorry, I've been distracted by another issue and am now back on this one attempting to gather more information.  It seemed fairly frequent in my prior test case and I have one board in this state now.

    I am indeed receiving a general event just before getting the -100 socket errors.  The general event is SL_DEVICE_DRIVER_TIMEOUT_SYNC_PATTERN and the slGeneralEvent->EventData.deviceDriverReport.info == 0.  I'll gather the status and sender next.

    What does the error code -100 mean exactly?  I didn't find a definition for it in the header files.

  • Followup: ID (status) and sender are both zero in the sync pattern timeout event that I receive.

    FYI: On this particular board the firmware version is as follows and I'm not able to update it due to a different problem being investigated:

    ID(67108864) FW(31.0.0.4.1) PHY(1.5.3.3)
    NWP(2.0.7.0) ROM(13107) HostDrv(1.0.1.11)

  • After getting the sync pattern error, I prepare and do a device sl_Stop/sl_Start.  When I do that I get a SL_DEVICE_DRIVER_TIMEOUT_ASYNC_EVENT general event and ROLE_UNKNOWN is returned from sl_start().

    It does not appear to recover. What are the reasons sl_Start() would return ROLE_UNKNOWN?

  • Looks like some instability with regards to your SPI,

    Please check the hardware checklist in the following link:

    https://processors.wiki.ti.com/index.php/CC3100_%26_CC3200_Hardware_Design_Review

    br,

    Kobi