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在定时器中的各位如下定义:
位 | 0 | 1 | 备注 |
bit0 | RT_TIMER_FLAG_DEACTIVATED:定时器未激活,即初始化值 | RT_TIMER_FLAG_ACTIVATED:定时器激活,当定时器start后将会置为此状态 | 激活/非激活状态 |
bit1 | RT_TIMER_FLAG_ONE_SHOT:单次定时器.即定时器时间一到自动失效 | RT_TIMER_FLAG_PERIODIC:周期定时器.即时间一到,自动时行下一次定时. | 单次定时器/周期定时器 |
bit2 | <