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.

SIMPLELINK-WIFI-CC3120-SDK-PLUGIN: How to port the CC3120 driver from SDK for MQX RTOS

Part Number: SIMPLELINK-WIFI-CC3120-SDK-PLUGIN
Other Parts Discussed in Thread: CC3120

- We are using SimpleLink CC3120 module for WiFi communication in our product, and for intial development we used nonos drivers.

But as the product matured we added multiple protocol to the system, and we observed that some time the driver stuck in “SlDrvSyncObjWaitForever” function which will not return until we release from another task.

To avoid this we want to port the driver from nonos functionality to MQX RTOS support.

How to do this porting? Any help will be much appreciated.

  • Hi,

    Please see porting guide at SWRU455 chapter 19.

    If you have ported host driver to you platform already (at NORTOS configuration), your job should be relatively easy. It will be likely about changing driver synchronisation and lock object to native objects from your RTOS. You will need to add new task for control asynchronous handlers (sl_Task()). Whether they will be necessary changes at SPI control code will depends on your current implementation.

    Jan

  • Hi,

    I modified the changes suggested in the porting guide Chapter 19, but still proper handshake is not happening between MCU and CC3120.

    I have created dedicated task to run sl_Task and remaining my initialization sequence and other routines kept as it is just to check handshake is happening or not, but unfortunately it is not working out.

    I have looked in the example code as well but that is using nonos support so not able to get much help from that.

    If you have any sample code with multithread support available can you share the same, that will be helpful.

    Anuj

  • Hi Anuj,

    Almost all code at WiFi plug-in is designed for RTOS usage. Unfortunately I don't have any example with MQX. I don't think that anyone from TI will have any MQX example because this RTOS is from another vendor. But you may to wait for answer from TI.

    Jan

  • Hi Jan,

    If it is for any other RTOS that is also fine, i am looking for the sequence of initialization along with sl_task call reference, as i tried to have dedicated task for sl_task and just before creating the task i tried to call sl_start but that is failing.

    So if you have any idea /example code which deals with multithread on any rtos that will be good enough for me.

  • Hi,

    For example you can check RTOS examples (FreeRTOS or TI-RTOS) for MSP432E4 like a:

    btw ... why are using MQX? It is part of your older project? I think there are much better RTOS than MQX, especially at current state of NXP support for this RTOS.

    Jan

  • Hi,

    It worked now. We are using old driver version "2.0.0.53", and that has known defect described in below thread:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/581209/cc3120-sl_start-doesn-t-work-with-sl_tiny-turned-on

    Once i commented below line, it started working.

    if ((&GlobalLockObj) == NULL)

    Thanks Jan for your inputs. We are using MQX as it was already integrated and don't want to change RTOS at this point of time.

    Anuj