UCOS-II常用变量说明

1, OSRunning

   在ucos_II.h中定义,声明为BOOLEAN数据类型,这个变量用于指示OS是否正在运行。

   “1”为运行状态,反之为未运行态。

2, OSPrioCur

   在ucos_II.h中定义,声明为INT8U数据类型,表示当前任务的优先级。

3, OSPrioHighRdy

   在ucos_II.h中定义,声明为INT8U数据类型,表示最高优先级任务的优先级。

4, OSTCBHighRdy

   在ucos_II.h中定义,声明为一个OS_TCB类型的指针,指向最高优先级任务TCB。

   原型为:OS_TCB *OSTCBHighRdy;

5, OSTCBCur

   在ucos_II.h中定义,声明为一个OS_TCB类型的指针,指向当前正在运行任务TCB。

   原型为:OS_TCB *OSTCBCur;

6, OSRdyGrp

    在ucos_II.h中定义,声明为INT8U的数据类型,就绪任务组,在找出进入就绪态的优先级中运用,用来找出进入就绪态任务的优先级。在任务调度时用来找出最高优先级的任务。从而进行任务切换。

7, OSRdyTbl[ ]

     在ucos_II.h中定义,声明为INT8U的数据类型,它是一个一维数组,存放就绪任务的任务表。同OSRdyGrp配合使用,找出最高优先级的任务。

8, OSIntExitY

9, OSUnMapTbl[ ]

10,OSTCBPrioTbl[OSPrioHighRdy ]

在ucos_II.h中定义,声明为OS_TCB类型指针数组,创建任务块的指针表。原型如下:


11, OSTCBX; //用于快速方问就绪表的数据。

OSTCBY;

OSTCBBitX;

OSTCBBitY;


12.OSTCBList ;//为任务控制块链表的头指针。

OSTCBFreeList; //为空闲任务控制块链表的头指针,在OSInit() 中首先要初始化空任务指针,而在调用创建新的任务后,新的任务将会在空闲任务链表中获得一个任务控制块作为新的任务的任务控制块。而OSTCBFreeList将会更新头指针,使下一个空闲任务块做为头指针。


说明:任务控制块采用了双向链表,为了加快访问任务控制块的速度,UCOSII还定义了另一个数组 OSTCB *OSTCBTbl[ ] ;专门用来以任务的优先级为顺序在各个数组元素里存放指赂各个任务控制块的指针,这样在访问任务的任务控制块时,就可以非常快,而不必遍历任务控制块链表了。


进行任务调度的依据就是任务就绪表。OSRdyTbl[ ]; 为了便于就绪表的查找,另外定义了一个变量INT8U OSRdyGrp; 为了中加快运算速度双定议了一个数组         OSMapTbl[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};


同样OSUnMapTbl[ ];也是为了加速优先级定义的一个数组。



13,对于信号量,消息邮箱,消息队列构成的事件数据结构,作为功能完善的事件处理,应该对系统的等待任务进行一定的管理。这个管理的功能包括两个方面。一是要对等待事件的所有任务进行记录并排序。二是应该允许任务有一定的等待时限。对于这些事件任务的记录和处理,UCOSII采用了与任务就绪表类似的方法,使用一个数组INT8U OSEventTbl[ ]作为记录等待事件任务的记录表,即等待任务表。同样为了加快对此表的反应速度,增加了INT8U OSEventGrp.这个事件表和任务就绪表格式一样。叫任务等待表。

本章将介绍μC/OS-II中的初始化配置项。由于μC/OS-II向用户提供源代码,初始化配置项由一系列#define constant语句构成,都在文件OS_CFG.H中。用户的工程文件组中都应该包含这个文件。本节介绍每个用#define constant定义的常量,介绍的顺序和它们在OS_CFG.H中出现的顺序是相同的。表12.1列出了常量控制的μC/OS-II函数。“类型”为函数所属的类型,“置1”表示当定义常量为1时可以打开相应的函数,“其他常量”为与这个函数有关的其他控制常量。注意编译工程文件时要包含OS_CFG.H,使定义的常量生效。表T12.1 μC/OS-II函数和相关的常量(#define constant定义)

OS_MAX_EVENTS


OS_MAX_EVENTS定义系统中最大的事件控制块的数量。系统中的每一个消息邮箱,消息队列,信号量都需要一个事件控制块。例如,系统中有10个消息邮箱,5个消息队列,3个信号量,则OS_MAX_EVENTS最小应该为18。只要程序中用到了消息邮箱,消息队列或是信号量,则OS_MAX_EVENTS最小应该设置为2。

OS_MAX_MEM_PARTS


OS_MAX_MEM_PARTS定义系统中最大的内存块数,内存块将由内存管理函数操作(定义在文件OS_MEM.C中)。如果要使用内存块,OS_MAX_MEM_PARTS最小应该设置为2,常量OS_MEM_EN也要同时置1。

OS_MAX_QS


OS_MAX_QS定义系统中最大的消息队列数。要使用消息队列 ...
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值