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.

CC3200: Multiple task handling

Other Parts Discussed in Thread: CC3200

Hello everyone,

I am working with CC3200 where I am using different tasks (osi_TaskCreate()) for different activities such as WPS connection, getting data from the server, email and many more. I am giving these tasks different priorities but as the application completes the first task, it just does not return. It does not go to the next lower priority task. We just loose the processor.

Can anyone help me understand what is happening??

Do I need to use osi_TaskDelete() or Osi_TaskDisable() or something else to block the task and to move to the next task??

Any help is appreciated. 

Thanks,

Sameer

  • Hi Sameer,
    Assuming you are using TI-RTOS underneath the osi layer, you should not need to call osi_TaskDelete() to get the other task to run. osi_TaskDisable() disables the Task scheduler, so you shouldn't do that either in this case. If you are using CCS, you could bring up the ROV tool to see what state the Tasks are in, and if any Task stacks have overrun.
    Best regards,
    Janet
  • Hello Janet,

    Yes I am using CCS and RTOS underneath the osi layer. 

    I have to use multiple tasks in a very dependent manner. I need to block few tasks and unblock them only after successful completion of other task. Can I use osi_SyncObjCreate(), osi_SyncSignal() and osi_SyncObjWait()..?? Or any other APIs or methods you recommend?

    Is there any sample code doing similar activities?  

    Thanks,

    Sameer

  • Hi Sameer,
    You should be able to use osi_SyncObjCreate(), etc. I looked at the source code for this, and the TI-RTOS version is built on Semaphore created with count 1, which is what you need in your case. I don't know of any example code, but the API looks pretty straight-forward.
    Best regards,
    Janet