直接在MAIN里创建了7个任务,任务ABCD能正常调度,任务123没有调度
int main()
{
xTaskCreate(
TaskA,
"TaskA"
128,
NULL,
tskIDLE_PRIORITY + 1,
NULL
);
xTaskCreate(
TaskB,
"TaskB"
128,
NULL,
tskIDLE_PRIORITY + 2,
NULL
);
xTaskCreate(
TaskC,
"TaskC"
128,
NULL,
tskIDLE_PRIORITY + 3,
NULL
);
xTaskCreate(
TaskD,
"TaskD"
128,
NULL,
tskIDLE_PRIORITY + 4,
NULL
);
xTaskCreate(
Task1,
"Task1"
128,
NULL,
tskIDLE_PRIORITY + 5,
NULL
);
xTaskCreate(
Task2,
"Task2"
128,
NULL,
tskIDLE_PRIORITY + 6,
NULL
);
xTaskCreate(
Task3,
"Task3"
128,
NULL,
tskIDLE_PRIORITY + 7,
NULL
);
vTaskStartScheduler();
return 0;
}
然后把任务123放在另一个任务中创建,所有的任务又都能正常调度了:
static void Father_Task(void *pvParmeters)
{
xTaskCreate(
Task1,
"Task1"
128,
NULL,
tskIDLE_PRIORITY + 6,
NULL
);
xTaskCreate(
Task2,
"Task2"
128,
NULL,
tskIDLE_PRIORITY + 7,
NULL
);
xTaskCreate(
Task3,
"Task3"
128,
NULL,
tskIDLE_PRIORITY + 8,
NULL
);
}
int main()
{
xTaskCreate(
TaskA,
"TaskA"
128,
NULL,
tskIDLE_PRIORITY + 1,
NULL
);
xTaskCreate(
TaskB,
"TaskB"
128,
NULL,
tskIDLE_PRIORITY + 2,
NULL
);
xTaskCreate(
TaskC,
"TaskC"
128,
NULL,
tskIDLE_PRIORITY + 3,
NULL
);
xTaskCreate(
TaskD,
"TaskD"
128,
NULL,
tskIDLE_PRIORITY + 4,
NULL
);
xTaskCreate(
Father_Task,
"Father_Task"
64,
NULL,
tskIDLE_PRIORITY + 5,
NULL
);
vTaskStartScheduler();
return 0;
}
哪位大侠能解释下,这是肿么回事???
|