OS_InitTCBList 函数

//初始化空闲TCB链表 static void OS_InitTCBList (void) { INT8U i; OS_TCB *ptcb1; OS_TCB *ptcb2; OSTCBList = (OS_TCB *)0; //任务控制块链接表的指针清0 for (i = 0; i < (OS_LOWEST_PRIO + 1); i++) { OSTCBPrioTbl[i] = (OS_TCB *)0; //清除所有的优先级控制块优先级列表 } ptcb1 = &OSTCBTbl[0]; //查找任务控制块列表(0)的对应地址 ptcb2 = &OSTCBTbl[1]; //查找任务控制块列表(1)的对应地址 for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) { ptcb1->OSTCBNext = ptcb2;//释放所有的任务控制块列表 ptcb1++; ptcb2++; } ptcb1->OSTCBNext = (OS_TCB *)0; //将最后的任务块双向链接表的后链接为0 OSTCBFreeList = &OSTCBTbl[0]; //空任务控制块地址为当前任务控制块列表的首地址 }

你可能感兴趣的:(OS,任务)