uc/os任务创建

问题描述:

     uc/os中任务创建

问题解决:

创建一个任务,任务从无到有。任务创建函数分两种,

一种是基本的创建函数OSTaskCreate,

另一种是扩展的任务创建函数OSTaskCreateExt。

着重讲解OSTaskCreate。

    创建任务OS_TaskCreat。

    堆栈初始化函数OSTaskStkInit的一个版本

clipboard

                        操作系统任务状态转换图

clipboard

注:

    OSTaskStkInit()        初始化堆栈

    OS_TCBInit()             TCB初始化

clipboard

注:

    在OS_TCBInit函数中初始化了任务优先级以及TCB其他信息

clipboard

注:

    如上设置了当前任务的OSTCBBitX和OSTCBBitY

clipboard

注:

    如上设置当前就绪任务链以及任务优先级

clipboard

OS_Shed解释

clipboard

注:

    通过本函数,可以找出优先级最高的任务

    通过OSUnMapTbl[]获取任务优先级:

713309245

其中 0为最高优先级,63为最低优先级,因此查找优先级最高的任务,使用的是优先级判定表OSUnMapTbl[],OSUnMapTbl[]表中的数值表示的是一个8bit的数据最低位为1的位置,例如:1000 0000 最低位为1的位置是在第7位,那么OSUnMapTbl[128]的值就是7;1000 0010 最低位为1的位置是在第1位,那么OSUnMapTbl[130]的值就是1;

通过OS_ScheNew可以获取最高优先级OSPrioHighRdy,然后进行调度

注:

    以上详细讲解了ucos任务创建的流程,注意任务创建过程中可能存在任务调度(最高优先级程序切换)

转载于:https://www.cnblogs.com/luosongchao/p/3295543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值