uCOSII操作系统内核源码------任务控制块(OS_TCB)

OS_TCB

创建任务时,会给它分配一个任务控制块OS_TCB。任务控制块是一种数据结构,当任务被抢占时,用它来维护任务的状态。当任务重新获得对CPU的控制时,任务控制块允许任务在它停止的地方继续执行。注意到,我对OS_TCB中的字段进行了组织,以允许在维护成员的逻辑分组的同时对数据结构进行打包。OS_TCB在创建任务时初始化。
下面是对OS_TCB数据结构中的每个字段的描述:

typedef struct os_tcb { 
    OS_STK        *OSTCBStkPtr;    //任务当前堆栈指针     
 
#if OS_TASK_CREATE_EXT_EN     
    void          *OSTCBExtPtr; //指向用户可定义任务控制块扩展的指针。这允
                                //许您或用户的用户扩展任务控制块,而不必更	
                                //改的源代码。													                         
    OS_STK        *OSTCBStkBottom; //指向任务堆栈底部的指针
    INT32U         OSTCBStkSize; //保存堆栈大小的变量,以元素的数量而不是字 
                                 //节的数量表示           
    INT16U         OSTCBOpt;  //一个保存“选项”的变量,可以传递给函数
                              //OSTaskCreateExt()
    INT16U         OSTCBId; // a variable that is used to hold an 
                            //identifier for the task
#endif 
 
    struct os_tcb *OSTCBNext;    //TCB节点的后继       
    struct os_tcb *OSTCBPrev;  //TCB节点前驱
 
#if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_SEM_EN 
    OS_EVENT      *OSTCBEventPtr; //指向事件控制块的指针
#endif 
 
#if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN 
    void          *OSTCBMsg;  //指向发送给任务的消息的指针
#endif     
     
    INT16U         OSTCBDly; //当任务需要被延迟一定数量的时钟滴答声或任务需
                             //要为事件超时而付出代价时使用。即可以容忍的时
                             //间
    INT8U          OSTCBStat; //指示任务状态,当OSTCBStat为0时,任务就可以
                              //运行了
    INT8U          OSTCBPrio; //任务的优先级


//OSTCBX、OSTCBY、OSTCBBitX和OSTCBBitY用于加速使任务准备运行的过程,或使任务
//等待事件(避免在运行时计算这些值)。这些字段的值在创建任务或更改任务的优先级时
//计算
 
    INT8U          OSTCBX; 
    INT8U          OSTCBY; 
    INT8U          OSTCBBitX; 
    INT8U          OSTCBBitY; 
 
#if OS_TASK_DEL_EN     
    BOOLEAN        OSTCBDelReq; //指示任务是否请求删除当前任务
#endif 
} OS_TCB; 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值