suspend task

malacay wrote on Thursday, February 09, 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.

malacay wrote on Thursday, February 09, 2012:

When I goto vTaskSuspend( Task3 ); then it goes no further, because Task4 and Task5 are not generated.

Why?

malacay wrote on Thursday, February 09, 2012:

Ok now I gernerate Task4 und Task5 but now when i goto vTaskSuspend( Task3 ) it stopped

rtel wrote on Thursday, February 09, 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.

malacay wrote on Thursday, February 09, 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.