首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

rt-thread内查对象标志(object.flag)总结

2013-03-14 
rt-thread内核对象标志(object.flag)总结1 前言在前面介绍rt-thread内核对象时(http://blog.csdn.net/flyd

rt-thread内核对象标志(object.flag)总结
1 前言

在前面介绍rt-thread内核对象时(http://blog.csdn.net/flydream0?viewmode=contents),有介绍到rt-thread内核对象成员flag,但是没有怎么具体介绍他的含意,只是把它当做普通标志来理解,这里特意将此flag提出来总结一下,这也是这篇博文的目的.

首先,内核对象的flag确实是一标志,且是8个位的数据,按位来定义的,那么它到底各个位是怎么定义的呢?答案是用在不同的内核对象时,它的各位定义会有所不同.

从前面的博文中我们可以知道,rt-thread的内核对象有定时器,线程,信号量,互斥锁,事件,邮箱,消息队列,内存堆,设备,模块,这些内核对象都继承了内核对象的成员,其中也就包含了内核对象的flag成员,因此,内核对象成员flag在这些不同的场合是具体不同的含义的,下面总结一下:

2 object.flag在定时器中的含义

object.flag在定时器中的各位如下定义:

位01备注bit0RT_TIMER_FLAG_DEACTIVATED:定时器未激活,即初始化值RT_TIMER_FLAG_ACTIVATED:定时器激活,当定时器start后将会置为此状态激活/非激活状态bit1RT_TIMER_FLAG_ONE_SHOT:单次定时器.即定时器时间一到自动失效RT_TIMER_FLAG_PERIODIC:周期定时器.即时间一到,自动时行下一次定时.单次定时器/周期定时器bit2RT_TIMER_FLAG_HARD_TIMER:硬时钟.即采用硬件时钟.RT_TIMER_FLAG_SOFT_TIMER:软件时钟.即采用软件时钟.硬件时钟/软件时钟标志

3 object.flag在线程中的含义

线程虽然也继承了内核对象,但是它的数据定义并未直接包含内核对象结构体变量成员,而是直接在线程控制块中包含其成员,如下:

位01备注bit0RT_IPC_FLAG_FIFO:按消息队列先进先出的方式处理.RT_IPC_FLAG_PRIO:按线程优先级的方式处理,即哪个线程的优先级高,则哪个先操作.IPC处理方式

5 其它

object.flag在设备,内存堆和内存池中都没有被用到.

object.flag在模块中有用到,bit0被用作带entry point与否标志,之前还没有介绍到RTT模块的内容,这里也就不介绍了,后续我将在专门介绍RTT模块的博文中介绍,敬请关注!


完!


热点排行