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: Issues porting from CC3100 NONOS port to CC3120 NONOS port

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

I have a working version of the CC3100 NONOS port.  However, when I tried to port to the CC3120's NONOS port I get a lot of errors during the build.  Most of the issues are related to OS types like semaphors and mutex's,  There are even include directories being referenced in the cc_pal.h file that do NOT exist, like ti/drivers/dpl/...  I cant find a .dpl directory anywhere in the SDK plugin.

I've seen other posts relating to CC3120 porting, but most of them are old and there's been updated version of the SDK that were supposed to address their issues.  I'm using version 1.50.00.38 of the SDK.

I'm really kind of baffled at these build errors.  I was expecting this port to go smoothly after getting a working CC3100 port.  But. that's just not the case..   

I'm sure I'm doing something wrong, because it's not like TI to reference include directories that don't exist.  Also, I don't know why there are references to Semaphores and mutex's in a NONOS port.  Are we missing some #defines that disable those functions?

Please help, as I've spent a lot of time trying to get this port going, and all I'm getting is unexpected errors.  

  • Hello,

    I agree it is not straight forward as it seems at the beginnin, mainly becasue the wntire structure of the SDK changed between the two generations, and also becasue there is no reference to the older platforms (just to the new MSP432).

    There is a migration guide you can use http://dev.ti.com/tirex/content/simplelink_cc32xx_sdk_1_40_00_03/docs/simplelink_mcu_sdk/SimpleLink_Gen1_to_Gen2_SDK_Migration_Guide.html.

    Apart from that, you need to be more specific.

    Regards,

    Shlomi

  • I like to be more specific but with missing directories being called out in the SDK files, there's not much more I can provide. Even the examples call for an NoRtos.h file that is nowhere in the SDK.

    cc_pal.h is referring to:
    #include <ti/drivers/dpl/SemaphoreP.h>
    #include <ti/drivers/dpl/MutexP.h>
    #include <ti/drivers/dpl/ClockP.h>

    Again, these include files are nowhere in the SDK.. And, I don't know why they are needed in an NONOS port.
  • I see your point now.

    The plugin SDK is just a plugin. It needs to come with the base SDK which is in this case 1.50.00.12.

    You can see it under the user guide doc on the plugin SDK.

    The link for the base SDK is http://www.ti.com/tool/download/SIMPLELINK-MSP432-SDK

    Regards,

    Shlomi

  • now I have those directories, but I'm still confused as heck.. Why aren't there any NonRTOS examples like in the CC3100 SDK? I can't seem to get a build. I keep having to add more and more RTOS related files which in turn is giving more and more errors. What the heck?

    I've looked at the porting guide. I don't think it mentions anything about what has to be included in the build for a NONRTOS version.

    I'm definitely missing something, or I have too much included, or the wrong files included. I'm almost to the point of ditching this whole thing...
  • What platform have you used with CC3100?

    If you also moved to a new platform (i.e. to MSP432), I would not even start with CC3100 to CC3120 as this is the least of your problems.

    As I mentioned, a lot have changed between the two SDKs so for a start I would try to see how the host application can be migrated rather than the CC3120.

    Can you tell which platform are you using?

    Shlomi

  • I'm using a TI-AM3359 to interface to the C3100 via a SPI interface.  However, the C3100 only allows for one connection in AP mode.  I need more connections.  That's why I went to the C3120.  The C3100's wifi drivers are compiled and linked in with my application code in a NONOS environment.  

    Yes, I can see a lot has changed in the SDK.  What I don't understand is, if I select NONOS why the driver package doesn't build the same as in the C3100.

  • So if you are using a platform not referred in the original or the new SDK, the porting should concentrate on the simpellink host driver only.

    It is true that only a single connection is supported on CC3100 and on CC3120 you can have up to 4 connections.

    As I mentioned, the entire design is different than it used to be, even for NORTOS.

    Now, the NORTOS is "like" the RTOS flavor where they all share the same API.

    So for example if you call to wait on a semaphore (in user.h refer to sl_SyncObjWait), it is mapped into SemaphoreP_pend() which is implemented for freertos/tirtos/nortos under the corresponding dpl porting layer ( kernel/nortos/dpl and kernel/tirtos/packages/ti/dpl and kernel/freertos/dpl).

    You should concentrate on the porting files under simplelink_sdk_wifi_plugin_1_50_00_38\source\ti\drivers\net\wifi\porting.

    Shlomi

  • Agree with everything you said.  I already had a working host port on the c3100.  I thought  I was concentrating on the simplelink host driver only.  Maybe not.  What exactly do you mean? What path in the sdk?

    I tried to link in the same files from the c3120 sdk as I did with the c3100 sdk plus any files in the kernel nortos directory along with my host interface porting files.  With all this I could never get a successful build.    Very frustating to say the least.

    Another thing I noticed in the programmers guide.  It looks like status returned from driver  has changed.   C3100 drivers returned negative numbers on error.  The c3120  guide indicates a non zero indicates an error.  But I never vot that far because i canr get a successful build.

    Can you please tell me what directories I need to include from both the 432 sdk where the nortos files are  and the Wi-Fi plugin sdk where the driver files are to get a successful build?

  • Well,  I finally gave up on trying to get the CC3120 SDK's nortos version built.  There's just not enough information for me to make it all work on a different platform.

    The nonos implementation in the CC3100 SDK is so much more simpler than the CC3120 nortos verison.  The newer version seems very dependent on the 432 platform, where the older 3100 version was much more device independent.  Why is that?  Why aren't there any device independent examples in the 3120's SDK?

    Even though I was able to get a working version running on a AM3359, using the information in the post below, I hate to close this thread because the real issue is not resolved in my mind.  That issue being, I was not able to get a working build of the nortos version of the CC3120 for a NON-432 host.

    Thanks to Ed Ferrari's post at https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/578718/2157135#2157135