内核对象管理
优质
小牛编辑
131浏览
2023-12-01
内核对象管理接口
结构体 | |
struct | rt_object |
内核对象基类控制块 更多... | |
struct | rt_object_information |
内核对象信息 更多... | |
宏定义 | |
#define | RT_OBJECT_FLAG_MODULE 0x80 |
动态模块对象标志 | |
类型定义 | |
typedef struct rt_object * | rt_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中各类内核对象的派生和继承关系。对于每一种具体内核对象和对象控制块,除了基本结构外, 还有自己的扩展属性(私有属性),
Figure 2: Kernel Object枚举类型说明
enum rt_object_class_type |
内核对象类型
枚举值 | |
---|---|
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 将被获取的指定对象
- 返回
- 指定对象的类型