1、FreeRTOS实际完成任务删除是在空闲任务里面。注意给空闲任务运行机会,否则出问题
2、注意正确的创建和删除姿势
[C] 纯文本查看 复制代码 /* K2键按下 删除任务vTaskLED */
case KEY_DOWN_K2:
printf("K2键按下,删除任务vTaskLED\\r\\n");
if(xHandleTaskLED != NULL)
{
vTaskDelete(xHandleTaskLED);
xHandleTaskLED = NULL;
}
break;
/* K3键按下 重新创建任务vTaskLED */
case KEY_DOWN_K3:
printf("K3键按下,重新创建任务vTaskLED\\r\\n");
if(xHandleTaskLED == NULL)
{
xTaskCreate( vTaskLED, /* 任务函数 */
"vTaskLED", /* 任务名 */
512, /* stack大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
2, /* 任务优先级*/
&xHandleTaskLED ); /* 任务句柄 */
}
break; |