suspend task

Posted by Braun on February 9, 2012
Hello,

if have a Problem when i suspend more tasks. I work on IAR, EFM32G290F128.

Task1()Priority:3
{
___xTaskCreate(Taks2,...);
___xTaskCreate(Taks3,...);
vTaskSuspend( Task1 );
...
}

Task2()Priority:2
{
___xTaskCreate(Taks4,...);
vTaskSuspend( Task2 );
...
vTaskResume(Task1);
....
}

Task3()Priority:2
{
___xTaskCreate(Taks5,...);
vTaskSuspend( Task3 );
...

vTaskResume(Task1);
...
}

Task4()Priority:1
{
...
vTaskResume(Task2);
...
}
Task5()Priority:1
{
...
vTaskResume(Task3);
}

When I goto vTaskSuspend( Task3 ); then it goes no further.

RE: suspend task

Posted by Braun on February 9, 2012
When I goto vTaskSuspend( Task3 ); then it goes no further, because Task4 and Task5 are not generated.

Why?

RE: suspend task

Posted by Braun on February 9, 2012
Ok now I gernerate Task4 und Task5 but now when i goto vTaskSuspend( Task3 ) it stopped

RE: suspend task

Posted by Richard on February 9, 2012
This is an immensely complex scenario that I don't want to work through, but even if I did there is no way I could possibly tell which task would run when without knowing their priorities.

Regards.

RE: suspend task

Posted by Braun on February 9, 2012
The priorities are:
Task1 ->3
Task2 ->2
Task3 ->2
Task4 ->1
Task5 ->1

Task2 and Task3 are periodic tasks. Tasks2 Periode->100ms, Tasks3 Periode->50ms
Task4 and Task5 will generate and after they are ready they delete themselves.
Task1 ist active when Task2 and Task3 are in blocked state.