建立任务OSTaskCreate()
1.OSTaskCreate()函数的声明
INT8U OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK *ptos,INT8U prio)
1.1返回类型 INT8U
1.2参数:4个参数,分别是指向任务代码段的函数指针task,指向任务数据的指针pdata,指向任务所分配的堆栈的栈顶指针ptos,以及任务的优先级prio
2.OSTaskCreate()函数的定义
INT8U OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK *ptos,INT8U prio)
{
void *psp; /*用于指向任务堆栈初始化后栈顶的指针*/
INT8U err; /*用于存放任务TCB初始化后返回的值*/
if(prio>OS_LOWEST_PRIO) /*判断任务的优先级是否在允许的范围内,即如果该任务的优先级比系统的空闲优先级*/
{ /*都低的话,那么就出错了*/
return (OS_PRIO_INVALID) /*返回优先级不可得*/
}
OS_ENTER_CRITICAL();
if (OSTCBPrioTbl[prio]==(OS_TCB *)0) /*判断所分配的优先级是否已经被其他任务占用,(OS_TCB)*0 表示没有占用*/
{
OSTCBPrioTbl[prio]=(OS_TCB *)1; /*将新分
μC/OS之OSTaskCreate()
最新推荐文章于 2023-10-11 14:42:20 发布
本文详细介绍了μC/OS中任务创建函数OSTaskCreate()的使用,包括函数参数解析、任务优先级判断、任务堆栈初始化和TCB初始化等关键步骤。通过理解这些步骤,读者能够掌握如何在μC/OS操作系统中创建并管理任务。
摘要由CSDN通过智能技术生成