zoukankan      html  css  js  c++  java
  • 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任务创建的流程,注意任务创建过程中可能存在任务调度(最高优先级程序切换)

  • 相关阅读:
    Python中的list和tuple
    Python中输出格式化的字符串
    Python笔记-第一天
    在Lingo中输入矩阵(通过Excel)
    将Matlab中的矩阵输出到txt文件
    SQL中对于两个不同的表中的属性取差集except运算
    SQL中union运算操作的理解
    SQL笔记----在一个关系表中操作列
    MathType的公式在word中跟文字不对齐
    开发android过程中eclipse闪退解决
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3295543.html
Copyright © 2011-2022 走看看