已知数据类型定义和变量如下: typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned short INT16U; typedef signed short INT16S; typedef unsigned long INT32U; typedef signed long INT32S; typedef unsigned short OS_STK; 任务控制块的结构定义如下: typedef struct os_tcb { OS_STK *OSTCBStkPtr; /*指向任务堆栈的栈顶指针*/ struct os_tcb *OSTCBNext; /* 指向后一个控制块的指针*/ struct os_tcb *OSTCBPrev; /* 指向前一个控制块的指针*/ INT16U OSTCBDly; //定义允许任务等待时的最多节拍数 INT8U OSTCBStat; //定义任务的状态字 INT8U OSTCBPrio; //定义任务的优先级 INT8U OSTCBX; //任务优先级的低3位,即=priority&0x07 INT8U OSTCBY; //任务优先级的高3位,即=priority>>3 INT8U OSTCBBitX; //低3位就绪表对应值(0~7),即=OSMapTbl[priority&0x07] INT8U OSTCBBitY; //高3位就绪表对应值(0~7),即=OSMapTbl[priority>>3] } OS_TCB; OS_ TCB *OSTCBCur; //定义指向正在运行任务控制块的指针 OS_TCB *OSTCBFreeList; //定义空任务控制块指针 OS_TCB *OSTCBHighRdy; //定义指向最高级优先级就绪任务控制块的指针 OS_TCB *OSTCBList; //定义任务控制块列表首地址 OS_TCB *OSTCBPrioTbl[OS_LOWEST_PRIO + 1]; //定义任务控制块优先级表 OS_TCB OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS]; //定义当前任务控制块列表 (1) 设计函数 OSTaskCreate 实现任务的创建。 (2) 设计函数 OSTaskSuspend 实现任务的挂起。 (3) 设计函数 OSTaskResume 实现 任务的恢复。 uC_OS-II实验指导书2016 - 4.pdf