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.

BOOSTXL-CC3135: Integrating host driver in Application

Part Number: BOOSTXL-CC3135

Hi,

Creating new thread from:

https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/927042/3426036#3426036

I am writing in more detail, for those who do not have reference from previous thread.

I am using host micro as NXP iMX.RT1050 EVK with freertos running on it. 

1)So, our plan is starting with basecode for NXP iMX.RT1050 EVK running on FreeRTOS. Then, porting the host driver for simplelink on it.

If you think doing this in some other way would reduce efforts, let us know. 

As our host micro is different, we are using examples as reference.

2) When I called sl_Start from my application, the compiler could not locate its definition.I had included the simplelink.h.

Later, In the linker option I included file simplelink.a in command line option that was missing. It started giving errors like,

Error[Li005]: no definition for "sem_destroy" [referenced from driver.obj(simplelink.a)]
Error[Li005]: no definition for "sem_post" [referenced from driver.obj(simplelink.a)]
Error[Li005]: no definition for "pthread_mutex_unlock" [referenced from driver.obj(simplelink.a)]
Error[Li005]: no definition for "pthread_mutex_destroy" [referenced from driver.obj(simplelink.a)]
Error[Li005]: no definition for "SimpleLinkFatalErrorEventHandler" [referenced from eventreg.obj(simplelink.a)]

I guess these are references from user.h

Even after commenting just to check,

// #define sl_SyncObjDelete(pSyncObj)                  sem_destroy(pSyncObj), 

I could not get rid of the error. This means sem_destroy must be used somewhere else.

Regards,

Aniket.

  • Hey Aniket,

    It looks like your compiler is having trouble finding the posix semaphore and mutex API definitions. These are defined in their respective semaphore.h and pthread.h files which can be found here: <SDK-Root>/source/ti/posix<compiler>. You most likely need to add this path to your compiler #include search paths.

    Sem_destory is only referenced in user.h. The reason your changes had no effect is because simplelink.a is a precompiled library. The library needs to be rebuilt in order to see the effect of editing any of it's files. You can rebuild this library using the Makefile provided in <SDK-root>/source/ti/drivers/net/wifi. The Makefile will rebuild the simplelink.a library in place so you won't need to change the linker search path.

    Regards,

    Paul

  • Hi Paul,

    I am using IAR for the development purpose.
    Could you please let us know, how to rebuild the library using the Makefile provided?

    We were not aware that we need to rebuit the library. Is it mentioned in the documentation or did we miss something?
    Are we following unconventional path which is forcing us to do this step which is not mentioned in documentation?

    Regards,

    Aniket,

  • Hey Aniket,

    To rebuild the library for IAR, open a command terminal and cd to <SDK Root Directory>/source/ti/drivers/net/wifi/iar/<os> where os depends on if your application will be running with an rtos or nortos. In this directory you should see a makefile.defs and simplelink.a (the compiled host driver library). From here you can run the following two commands to rebuild the library using the makefile.defs:

    <XDCTools Install Directory>/gmake.exe clean -f makefile.defs

    <XDCTools Install Directory>/gmake.exe -f makefile.defs

    I don't believe this step is mentioned in the Porting the Host Driver section of the User's Guide. However I can put in a request to have this added.

    Rebuilding this library is not an unconventional path when porting the host driver. It is a necessary step so that the changes you make to the porting layer (cc_pal.c/h and user.h) are included in the library linked into your project.

    Regards,

    Paul