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.

RTOS/CC3220: How to install TI-RTOS static configurator in CCS(8)with latest SimpleLink SDK

Part Number: CC3220

Tool/software: TI-RTOS

Hi,

Extract from SimpleLink GEN1 to GEN2 Migration

'The SDK for CC31xx/CC32xx includes a POSIX layer which implements the operating system. The SDK includes implementations for SYS/BIOS (TI-RTOS).'

 

Extract from TI-RTOS Basics

'Even though the TI-RTOS examples use POSIX in the SimpleLink SDK, it is not required. You can use the native TI-RTOS APIs instead or along with the POSIX APIs if you prefer.'

For the OS API I'm looking to continue using TI-RTOS rather than change to POSIX calls. Reason is I have everything already done in GEN1 using the static configurator which works very well.

However looks like the TI-RTOS static configurator is no longer installed in CCS(8) as part of the CC3220 SimpleLInk SDK (not sure why not, no drawback I don't think ?)

Does anyone perhaps know how to get the TI-RTOS static configurator installed with CCS while using the CC3220 SimpleLink SDK ? (It would be a great time-saver.)

regards,

Stuart

  • Hi Stuart,

    You can still use the .cfg to statically create things. I personally like doing it that way, but the majority of customers (or the more vocal ones) seem to prefer runtime creation.

    With the SimpleLink SDKs, the majority of the examples have two projects: application project and kernel project. The kernel project has the .cfg in it. We received lots of feedback that customers wanted to share a kernel configuration across multiple application projects, so we moved most of the examples to this approach. You can still have the .cfg file in the application project also (the kernel examples do it this way). There are pros and cons to the two approaches that we tried to spell out in the SimpleLink User Guide.

    Note: we've defaulted the double-click of the .cfg to open as a text file. You can do a right-click and open as XGCONF if you prefer the graphical interface. Again we did this based on feedback from customers.

    Regarding the POSIX vs native kernel calls, we added to the POSIX support to
    1. Allow easier migration between RTOSes (e.g. FreeRTOS and TI-RTOS) and made our examples easier to maintain.
    2. Allow code snippets from the web to be easily used (e.g. there's lots more POSIX based code out on the web than TI-RTOS:)
    3. Some people prefer POSIX for various reasons.
    You do not have to use the POSIX interface. We even ship a examples/demos/portable and examples/demos/portableNative examples to show the difference. One nice thing is that you can mix and match between TI-RTOS and POSIX. So you can use pthread_create to create one task and Task_create to create another. Of course the downside of POSIX usage is the small impact on footprint (and learning curve if you don't know it).

    So in summary, the same support that you had in the TI-RTOS for CC32xx is present in SimpleLink CC32xx SDK, just maybe not as front and center as before.

    Todd
  • Hi Todd,

    Many thanks for your prompt and comprehensive reply, it helped me no end! My mistake in going from GEN1 to GEN2 was to dive straight in with the 'Migration Guide' and 'Programmer's Guide' whereas the 'User's Guide' was by far the most helpful in improving my understanding and getting on the right path.

    I'm not quite there yet but hopefully nearly. My goal is to just build the necessary CCS project environment and then to port my appl specific functions. In a nutshell my appl needs to connect to a router and send/receive UDP comms between 2 or more connected stations (straighforward). In GEN1 I used the UDPComm appl and trained myself up on TI-RTOS using the static configurator. All fine as I could use the available cfg file and modify the source files as necessary while including my own specific functions. All worked well. However in GEN2 UDPEcho format has completely changed with it using POSIX and so therefore no longer having the need for a cfg file.

    As I'm still keen to use TI-RTOS with the static configurator and in light of your reply I've been looking at possible solutions:

    1. Use GEN2 'UDPEcho' but somehow incorporate/generate my application cfg file, replacing POSIX calls with native TI-RTOS ones. But I don't know how to generate such a cfg file?

    2. Use 'portableNative' but again there is no cfg file. How to generate ?

    3.Use one of the SysBios kernel examples such as 'clock' and build it up from there ?

    regards,

    Stuart

  • Hi Stuart,

    Both the UDP Echo and portable example use the 2 project approach. The .cfg is in the kernel project. Here is a picture of the two projects.

    Then if you look at the project properties in the application project (portableNative in the above pic), you see how the projects are hooked together.

    So you can take the UDP Echo example in the SimpleLink SDK and then modify the kernel project's .cfg as needed. You can add the .cfg into the application project also (copy .cfg into project and then do a couple things to the project settings...here's a writeup if you want to go this route: ). The downside of adding the .cfg into the application project is that it is a one-way street. You cannot remove the .cfg from that application project.

    Todd

  • Hi Todd,
    Using the 2 project approach I have successfully created a custom TI-RTOS config, edited it to include a clock module which calls a function to toggle an LED every half second. All working fine!
    A few more bridges to cross I'm sure but I'm on my way.
    Thanks once more for improving my understanding and getting me back on track !
    Stuart