相关函数
OSTaskCreate(
start_task, // 任务指针
(void *)0, //参数列表
(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],//任务堆栈
START_TASK_PRIO); //任务优先级
任务被删除以后,该任务的信息从任务控制块列表中被移除,只是以代码的形式存放在单片机中。
相关函数:
OSTaskDelReq(BEEP_TASK_PRIO); //删除优先级为BEEP_TASK_PRIO的任务
OSTaskDel(OS_PRIO_SELF);//删除任务本身
注:一般删除任务的操作放在该任务所在函数完成,防止该任务所占用的资源没有释放。
任务挂起以后,该任务被加入等待列表,只有被恢复以后,才有可能获得CPU的使用权。
OSTaskSuspend(LED1_TASK_PRIO);
使对应优先级的任务从等待列表中进入就绪列表,下一次任务调度后,若条件满足则可以获得CPU的使用权。
OSTaskResume(LED1_TASK_PRIO);
只要中断条件允许,中断被触发以后,进入中断服务子函数,中断服务子函数可以看成是一个优先级高于 优先级0的一个任务。
中断程序结构:
OSIntEnter();//进入中断服务,记录中断嵌套的层数
中断程序代码...
OSIntExit();//推出中断服务,并触发任务调度,让当前优先级最高的任务获得CPU使用权
因篇幅问题不能全部显示,请点此查看更多更全内容