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.

Why only some example programs support TI-RTOS?

Other Parts Discussed in Thread: CC3200

Hi TI,

     Any particular reason why some example programs support only TI-RTOS. Having read the CC3200 Programmers Guide, I though all network example programs can be set to support TI RTOS. But, based from this wiki, that seems not to be the case.

     http://processors.wiki.ti.com/index.php/CC32xx_SDK_Sample_Applications

- kel

  • Hi Kel,

    All CC3200 OS application uses CC3200 OS Abstraction making it agnostic to either of OS( FreeRTOS or TI-RTOS). There is no specific reason for having few applications on TI-RTOS. 

    Since TI-RTOS package is not part of CC3200 SDK, user need to install it separately from CCS Apps Center. But once user installs TI-RTOS SDK, any application can be configured to use TI-RTOS by just changing the linker properties.

    Regards,

    Kaushal

  • Hi Kaushal,

    I need to run SmartConfig application on TI-RTOS. I have already installed TIRTOS from CCS Apps Centre. Can you please give us some more instructions on  configuring networking apps.   

    Thank you,

    Regards

    Rakesh Reddy

  • Hi Rakesh,

        Follow the CC3200 Getting Started Guide. Then review example programs that uses SmartConfig.

    - kel

  • Hi Kel and Kaushal

    Thank you for your reply. I have gone through the CC3200 Getting started guide and examples. I have successfully used wlanstation application by importing a ti_rtos_config project. But when I was trying to port outofbox application I am getting the following error.

    program will not fit into available memory. placement with alignment fails for section ".resetVecs" size 0x30c , overlaps with ".intvecs", size 0x400 (page 0)

    linker.cmd /ti_rtos_config/Default/configPkg line 130 C/C++ Problem

    I have tried changing the program size in cc3200v1p32.cmd file but still failed to build the project. Is there something I need to change in linker.cmd file which is linked to ti_rtos_config file. It seems to be messy if I start this
    way.What is the best starting point to work on a networking application using tirtos.

    Thank you,

    Regards

    Rakesh Reddy

  • Hi guys,

    I have solved above problem by changing the vector table address in app.cfg script file as follows

    Hwi.vectorTableAddress = 0x20005000;
    Hwi.resetVectorAddress = 0x20005000;

    The default ti_rtos_config project has the Location at 0x20004000 which was the program address in RAM(cmd file). So the problem has been solved. Thank you for your support guys.

    Regards

    Rakesh Reddy

  • Hi Rakesh,

    I would recommend you keep the TI RTOS config as is.

    Hwi.vectorTableAddress = 0x20004000;
    Hwi.resetVectorAddress = 0x20004000

    Please remove startup_ccs.c file from your CCS workspace and rebuild Out of Box project. Since in TI RTOS, Interrupt vector is initilized in TI RTOS, it need not be done in Application code.

     

     

  • Hi Kaushal,

    Thank you for your quick response. I have removed the startup_ccs.c file and changed the .config script as before. I have also inserted the macro #define USE_TIRTOS  in the main file. I could successfully build the program with the above setup but I could not see any output on the Terminal and getting the following exception.

    Exception occurred in background thread at PC = 0x2000e57c.
    Core 0: Exception occurred in ThreadType_Main

    Please guide me to solve the above problem. Is this something to do with the startup_ccs.c  file or there is some thing missing like initialization.

    Thank you 

    Regards

    Rakesh 

     

  • Hi Kaushal,


    What linker properties need to be changed?  I have installed the TI-RTOS SDK and included the ti_rtos_config project in my workspace.  I do not see how to do this in any of the documentation. 

    al

  • The general instructions for building using TI RTOS are listed in the CC3200 User Guide 

    http://www.ti.com/lit/ug/swru376a/swru376a.pdf

    as part of Section 3.  Take special note of the required build-order. 

    To change a freeRTOS project to TI RTOS:

    (build simplelink)

    (build ti_rtos)

    Under oslib project /Properties/General:

    (Note: you can NOT just select ti_rtos from the Configurations dropdown and click OK!)

    Click Manage Configurations 

    (oslib:Manage Configurations dialog is displayed)

    Select ti_rtos

    Click Active

    Click OK

    (Properties/General pane is displayed)

    Change Configuration to ti_rtos (Active)

    Click OK to save your property changes.

    Rebuild oslib.

    (build driverlib)

    Under <your top-level project>/Properties/Build/Dependencies:

    Remove any reference to free_rtos and add a reference to ti_rtos_config (not sure why this one dependency is present, given TI's instructions to build the libraries in a specific order, but ...)

    Under <your top-level project>/Properties/Build/ARM Compiler/Advanced Options/Predefined Symbols:

    Remove any define for USE_FREERTOS, and add USE_TIRTOS.

    Under <your top-level project>/Properties/Build/ARM Linker/File Search Path:

    Make sure that "${CC3200_SDK_ROOT}/oslib/ccs/ti_rtos/ti_rtos.a" is listed as a search path (and free_rtos is NOT).

    Save your property changes.

    Rebuild your top-level project

  • Everything was working fine for me for about a couple of weeks now, until all of a sudden this error occurred. Your answer, particularly to change the manage configuration of oslib project solved my issue. First i changed this then went on to build ti_rtos_config project and the problem was gone. I have no idea how it was set on freertos. Anyway. Thank you very much.