OSTaskSuspend(OS_PRIO_SELF);与之同效! 解决办法:static char txmsg; 下面是OSTaskDelReq的用法。 一、发出删除任务请求的任务和打算被时删除的任务都必须调用OSTaskDelReq()函数 举个例子:请求删除其他任务的任务,设为Task-1。 要被删除的任务,设为Task-2。其实就是Task-1删除Task-2. Task-1确定要删除Task...
OSTaskDel(OS_PRIO_SELF); } } } 所以这样看来,OSTaskDelReq (INT8U prio)函数有两个功能。第一,告诉某一任务删除他自己;第二,查看是否有其他任务请求删除当前任务。 如果某一任务想要请求删除自己,可以直接释放资源,然后调用OSTaskDel (OS_PRIO_SEL)。©...
prio = OSTCBCur->OSTCBPrio; //获得当前任务的优先级的值 } //就绪表删除任务 if ((ptcb = OSTCBPrioTbl[prio]) != (OS_TCB *)0) { if ((OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0x00) { OSRdyGrp &= ~ptcb->OSTCBBitY; } (说明:以下是对事件控制块的操作,会在以后的章节...
任务B会通过OSTaskDelReq (INT8U prio)函数来查询是否有其他任务请求删除自己。若有,则释放自己占用的资源、内存,调用OSTaskDel (OS_PRIO_SEL)来删除自己。主要的过程如下: void Task(void *p_arg) { . . while (1) { OSTimeDly(1); if (OSTaskDelReq(OS_PRIO_SELF) == OS_ERR_TASK_DEL_REQ) { Relea...
OSTaskDel(OS_PRIO_SELF); } } } 所以这样看来,OSTaskDelReq (INT8U prio)函数有两个功能。第一,告诉某一任务删除他自己;第二,查看是否有其他任务请求删除当前任务。 如果某一任务想要请求删除自己,可以直接释放资源,然后调用OSTaskDel (OS_PRIO_SEL)。©...