OS_TCBInit函数.docVIP

  • 14
  • 0
  • 约4.16千字
  • 约 3页
  • 2017-03-05 发布于重庆
  • 举报
OS_TCBInit函数

/任务控制块初始化?? //描述:这个函数是uCOS-II内部函数,在建立任务时调用的初始化任务控制块OS_TCB函数,含7个参数,查看OSTaskCreate()和OSTaskCreateExt()?? //初始化任务控制块TCB(优先级指针,堆栈指针,栈底指针,任务标志符,堆栈容量,扩展指针,选择项)?? INT8U??OS_TCBInit?(INT8U?prio,?OS_STK?*ptos,?OS_STK?*pbos,?INT16U?id,?INT32U?stk_size,?void?*pext,?INT16U?opt)?? {?? #if?OS_CRITICAL_METHOD?==?3????????????????????????????????//中断函数被设定为模式3?? ????OS_CPU_SR??cpu_sr;?? #endif?????? ????OS_TCB????*ptcb;??????????????????????????????????????//定义一个PCB变量?? ?? ?? ????OS_ENTER_CRITICAL();??????????????????????????????????//关闭中断?? ????ptcb?=?OSTCBFreeList;?????????????????????????????????//分配一个空任务控制块给ptcb?? ????if?(ptcb?!=?(OS_TCB?*)0)?{????????????????????????????//如果缓冲池有空余TCB,这个TCB被初始化?? ????????OSTCBFreeList????????=?ptcb-OSTCBNext;???????????//指向TCB的双向链接的后链接?? ????????OS_EXIT_CRITICAL();???????????????????????????????//打开中断?? ????????ptcb-OSTCBStkPtr????=?ptos;???????????????????????//指向当前TCB的栈顶指针(输入的数据)?? ????????ptcb-OSTCBPrio??????=?(INT8U)prio;????????????????//保存当前TCB的优先级别(输入的数据)?? ????????ptcb-OSTCBStat??????=?OS_STAT_RDY;????????????????//设定当前TCB的状态字(内容为(准备完毕))?? ????????ptcb-OSTCBDly???????=?0;??????????????????????????//允许任务等待的最大字节节拍为0?? ?? #if?OS_TASK_CREATE_EXT_EN??0???????????????????????????????//允许生成OSTaskCreateExt()函数?? ????????ptcb-OSTCBExtPtr????=?pext;???????????????????????//指向用户定义的任务控制块(扩展指针)?? ????????ptcb-OSTCBStkSize???=?stk_size;???????????????????//设定堆栈的容量?? ????????ptcb-OSTCBStkBottom?=?pbos;???????????????????????//指向堆栈栈底的指针?? ????????ptcb-OSTCBOpt???????=?opt;????????????????????????//保存OS_TCB的选择项?? ????????ptcb-OSTCBId????????=?id;?????????????????????????//保存任务标志符?? #else???//否则使用旧的参数?? ????????pext?????????????????=?pext;???????????????????????//扩展指针?? ????????stk_size?????????????=?stk_size;???????????????????//堆栈的容量?? ????????pbos?????????????????=?pbos;???????????????????????//栈底的指针?? ????????opt??????????????????=?opt;????????????????????????//选择项?? ????????id???????????????????=?id;?????????????????????????//任务标志符?? #endif?? ?? #if?

文档评论(0)

1亿VIP精品文档

相关文档