|
本帖最后由 天马行空 于 2017-11-5 13:37 编辑
static void System_Task(void *pvParameters)
{
xTaskCreate( Task1,
"Sys Task",
640 ,
NULL,
1, //优先级1
NULL );
xTaskCreate( Task2,
"Sys Task",
320 ,
NULL,
2, //优先级2
NULL );
xTaskCreate( Task3,
"Sys Task",
320 ,
NULL,
2, //优先级2
NULL );
xTaskCreate( Task4,
"Sys Task",
320 ,
NULL,
3, //优先级3
NULL );
xTaskCreate( Task5,
"Sys Task",
320 ,
NULL,
3, //优先级3
NULL );
SysTaskLoop(); //System Task
while(1) //掉坑里啦.........
vTaskDelay(portMAX_DELAY);
}
//mani()函数里只创建了一个优先级最低的总任务
xTaskCreate( System_Task,
"Sys Task",
320 ,
NULL,
0, //优先级0
NULL );
///////////////////////////以下是6个任务函数////////////////////////////////////////////////////////////////////////////////////////////
void SysTaskLoop(void *pvParameters)
{
while(1) {
//此任务没加 vTaskDelay( ),试着加了也没效果
}
void Task1(void *pvParameters)
{
while(1) {
//此处略去XX行
vTaskDelay(200);
}
void Task2(void *pvParameters)
{
while(1) {
//此处略去XX行
vTaskDelay(100);
}
void Task3(void *pvParameters)
{
while(1) {
//此处略去XX行
vTaskDelay(200);
}
void Task4(void *pvParameters)
{
while(1) {
//此处略去XX行
vTaskDelay(100);
}
void Task5(void *pvParameters)
{
while(1) {
//此处略去XX行
vTaskDelay(500);
}
问题:之前系统只有4个任务,跑的很正常,后来加了2个任务,就出现SysTaskLoop()任务跑2、3次就死掉了。加vTaskDaly()、加大HEAP、STACK等等也效果。但其它任务都正常跑。
再试着提高SysTaskLoop()优先级,结果死机。该试的参数都试过了,现在不知道问题出在哪里。谁能帮忙看看??
|
|