μC/OS 之OSTCBInit()

OSTCBInit()

INT8U OSTCBInit(INT8U prio,OS_STK *ptos,OS_STK *pbos,INT16U id,INT16U stk_size,void *pext,INT16U opt)
/*该函数为TCB的初始化函数,返回一个INT8U型变量,含有9个参数*/
/*prio 表示任务的优先级也表示任务的标识符*/
/*ptos 表示堆栈初始化后栈顶的指针*/
/*pbos 表示栈底的指针*/
/*id 用于扩充任务数,μC/OSⅡ以后可能会用到,在这里只需将其设置为任务的优先级即可*/
/*stk_size分配的堆栈的大小,如果栈入口宽为4个字节,且stk_size=1000,则堆栈容量为4000字节*/
/*pext指向用户附加的数据域的指针,用来扩充TCB*/
/*opt用于设定OSTaskCreateExt()的选项,指定是否允许堆栈检验,是否堆栈清零,任务是否要进行浮点操作等等*/
/*OS_TASK_OPT_STK_CHK,OS_TASK_OPT_STK_CLR和OS_TASK_OPT_STK_SAVE_FP个占opt的一位*/
{   
   OS_TCB *ptcb;  /*建立一个指向TCB的指针*/
   
   OS_ENTER_CRITICAL();/*关中断,从空隙TCB池中选取一个TCB,选好后开中断*/
   ptcb=OSTCBFreeList;/*将ptcb指向空隙TCB链表的首节点*/
   if(ptcb!=(OS_TCB *)0)  /*如果首节点不为空,即还存在空闲的TCB的话,进行下面的操作*/
   {
      OSTCBFreeList=ptcb->OSTCBNext; /*将指向空闲链表首指点的指针,指向空闲链表中下一节点*/
      OS_EXIT_CRITICAL();/*选取空闲TCB完毕,开中断*/
      
      ptcb->OSTC
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值