RT-Thread API参考手册  3.1.1
嵌入式实时操作系统
内核对象管理

内核对象管理接口 更多...

结构体

struct  rt_object
 内核对象基类控制块 更多...
 
struct  rt_object_information
 内核对象信息 更多...
 

宏定义

#define RT_OBJECT_FLAG_MODULE   0x80
 动态模块对象标志
 

类型定义

typedef struct rt_objectrt_object_t
 内核对象类型指针定义
 

枚举

函数

void rt_object_init (struct rt_object *object, enum rt_object_class_type type, const char *name)
 初始化对象 更多...
 
void rt_object_detach (rt_object_t object)
 脱离对象 更多...
 
rt_object_t rt_object_allocate (enum rt_object_class_type type, const char *name)
 分配对象 更多...
 
void rt_object_delete (rt_object_t object)
 删除对象 更多...
 
rt_bool_t rt_object_is_systemobject (rt_object_t object)
 辨别对象 更多...
 
rt_uint8_t rt_object_get_type (rt_object_t object)
 获取对象 更多...
 

详细描述

内核对象管理接口

RT-Thread采用内核对象管理系统来访问/管理所有内核对象,内核对象包含了内核中绝大部分设施, 这些内核对象可以是静态分配的静态对象,也可以是从系统内存堆中分配的动态对象。

RT-Thread内核对象包括:线程,信号量,互斥量,事件,邮箱,消息队列和定时器,内存池,设备驱动等。

下图则显示了RT-Thread中各类内核对象的派生和继承关系。对于每一种具体内核对象和对象控制块,除了基本结构外, 还有自己的扩展属性(私有属性),

Kernel_Object.png
Figure 2: Kernel Object

枚举类型说明

内核对象类型

枚举值
RT_Object_Class_Thread 

线程对象

RT_Object_Class_Semaphore 

信号量对象

RT_Object_Class_Mutex 

互斥量对象

RT_Object_Class_Event 

事件对象

RT_Object_Class_MailBox 

邮箱对象

RT_Object_Class_MessageQueue 

消息队列对象

RT_Object_Class_MemHeap 

内存堆对象

RT_Object_Class_MemPool 

内存池对象

RT_Object_Class_Device 

设备对象

RT_Object_Class_Timer 

定时器对象

RT_Object_Class_Module 

动态模块对象

RT_Object_Class_Unknown 

未知对象

RT_Object_Class_Static 

静态对象

函数说明

void rt_object_init ( struct rt_object object,
enum rt_object_class_type  type,
const char *  name 
)

初始化对象

该函数将初始化一个对象并将其放到系统对象管理器中。

参数
object将要被初始化的指定对象
type对象类型
name对象的名称。在系统中对象的名称必须唯一。
void rt_object_detach ( rt_object_t  object)

脱离对象

该函数将从对象管理器中脱离一个静态的对象,但是该静态对象并不会被释放。

参数
object指定脱离的对象
rt_object_t rt_object_allocate ( enum rt_object_class_type  type,
const char *  name 
)

分配对象

该函数将从系统资源中分配一个对象

参数
type对象类型
name对象的名称,在系统中,对象的名称必须唯一
返回
分配的对象
void rt_object_delete ( rt_object_t  object)

删除对象

该函数将删除一个对象并释放对象所占用的内存空间。

参数
object指定将被删除的对象
rt_bool_t rt_object_is_systemobject ( rt_object_t  object)

辨别对象

此函数将判断对象是否为系统对象。 通常,系统对象是静态对象, 对象类型设置为RT_Object_Class_Static。

参数
object将被判定的指定对象
返回
如果为系统对象返回 RT_TRUE, 否则返回 RT_FALSE。
rt_uint8_t rt_object_get_type ( rt_object_t  object)

获取对象

此函数将返回没有RT_Object_Class_Static标志的对象类型。

参数
object将被获取的指定对象
返回
指定对象的类型