static void OS_InitTCBList (void)
{
INT8U i;
OS_TCB *ptcb1;
OS_TCB *ptcb2;
OSTCBList = (OS_TCB *)0; /* TCB 初始化 */
for (i = 0; i < (OS_LOWEST_PRIO + 1); i++) { /* 清TCB优先级表数组 */
OSTCBPrioTbl = (OS_TCB *)0;
}
ptcb1 = &OSTCBTbl[0];
ptcb2 = &OSTCBTbl[1];
for (i = 0; i < (OS_MAX_TASKS + OS_N_SYS_TASKS - 1); i++) {
ptcb1->OSTCBNext = ptcb2; /*把空闲的TCB链接起来*/
ptcb1++;
ptcb2++;
}
ptcb1->OSTCBNext = (OS_TCB *)0; /* 最后一个TCB*/
OSTCBFreeList = &OSTCBTbl[0]; /* OSTCBFreeList 指向头一个空闲 TCB*/
}
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |