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.

AM3359: CC3120 Porting to AM335x

Part Number: AM3359
Other Parts Discussed in Thread: CC3120,

Hello,

I am trying to convert the CC3120 Driver to run on an AM335x device, using some SYS/BIOS, and lots of bare metal access.

I already converted another vendor driver quite easily.  Far easier in fact than this has been. But that module is not adequate and has a defect in the firmware.

Document swru455I chapter 19 says to create/modify a header under the porting folder.  Okay...

But how much gets ported??

They show this:

However, there are MANY more folders in there. 

Such as "ThirdParty"  (which is all apache licensed and SSL stuff...  ), net...  Many of which are referring to headers that are not in the regular compiler paths (unistd.h, sys/time.h ...). 

How much of that tree is needed for the driver?

  • Hi Christopher,

    The porting guide only refers to the SimpleLink host driver (i.e. everything under "source/ti/drivers/net/wifi/").

    Other network services or examples will not be ported.

    Some of the code can be reused if your host supports POSIX interface, but it can only be considered a reference.

    One problem is that the examples and libraries goes through the SlNetSock driver (can be found "ti/net") and doesn't use the SL API directly (e.g. sl_socket, sl_send, etc). The SlNetSock is not ported, so in order to enable the applications you will need to port the socket interface.

    What OS do you have on the AM3359? 

    If you are using Linux than you can check the option of using Wilink8 (http://www.ti.com/wireless-connectivity/simplelink-solutions/wi-fi/overview/wilink-combo-solutions.html)? The Wilink8 is fully integrated with an AM335x Linux host (supporting the Linux network stack and the hostapd/wpa_supplicant).

    Br,

    Kobi

     

  • Hi Kobi,

    Thanks for the reply.

    I am porting to, of all things, SYS/BIOS on the Sitara series.  Someone (me) would expect that is be really straightforward.  Except they tossed aside tasks and locks for imitation POSIX pthreads and sem's

    Silly me for assuming that the example code for running this in an RTOS would actually use the TI product!

    That was pretty much just as silly as me expecting any of the example projects to actually reflect material that is in the programmers guide.  But TI documentation and sample projects never fail to disappoint.

    My tasks now are to unravel the "terminal" sample project, notice that it's using 3 libs from the WIFI sdk, and rebuild those individually as AM335x projects so I can  link and step into the code to debug.  I found three:  slnetsock_release.a,  slnetifwifi.a and simplelink.a

    And as you indicated, all that code is rather incestuous, so it's a challenge to determine how ti silo these libs.  The makefile defs steer me in the right direction.

    So, in the process, convert many of the POSIX symbol names back to use the SYS/BIOS. I don't want to just "wrap" them, it's a wastes of CPU cycles and stack space to nest a bunch of calls inside other calls, then inside other calls.

    Why in the world would TI think wrapping POSIX calls is "cool" ??  Is anyone running Linux on an MSP432? (maybe someone is, but I don't see it as being an adequate MCU for that)

  • Hi,

    The POSIX was used as OS abstraction interface that enable the same application to support FreeRTOS and TIRTOS (on MSP432).

    It can be ported to other operating systems if needed, but such ports are not supported by TI.

    br,

    Kobi