RT-Thread对象管理解析(通过线程创建源码分析)(1)

可以使用统一的接口对对象进行管理

主要使用的类型

//一个基础类型, 一般位于内核对象的最前方, 用于记录一个对象的信息
struct rt\_object
{
    /\*内核对象名称\*/
    char name[RT_NAME_MAX];
    /\*内核对象类型\*/
    rt\_uint8\_t type;
    /\*内核对象的参数\*/
    rt\_uint8\_t flag;
    /\*内核对象管理链表\*/
    rt\_list\_t list;
};

/\*\*可以使用的对象类型
 \* The object type can be one of the follows with specific
 \* macros enabled:
 \* - Thread
 \* - Semaphore
 \* - Mutex
 \* - Event
 \* - MailBox
 \* - MessageQueue
 \* - MemHeap
 \* - MemPool
 \* - Device
 \* - Timer
 \* - Unknown
 \* - Static
 \*/
enum rt\_object\_class\_type
{
    RT_Object_Class_Null          = 0x00,      /\*\*< The object is not used. \*/
    RT_Object_Class_Thread        = 0x01,      /\*\*< 对象为线程类型 \*/
    RT_Object_Class_Semaphore     = 0x02,      /\*\*< 对象为信号量类型 \*/
    RT_Object_Class_Mutex         = 0x03,      /\*\*< 对象为互斥量类型 \*/
    RT_Object_Class_Event         = 0x04,      /\*\*< 对象为事件类型 \*/
    RT_Object_Class_MailBox       = 0x05,      /\*\*< 对象为邮箱类型 \*/
    RT_Object_Class_MessageQueue  = 0x06,      /\*\*< 对象为消息队列类型 \*/
    RT_Object_Class_MemHeap       = 0x07,      /\*\*< memory heap. \*/
    RT_Object_Class_MemPool       = 0x08,      /\*\*< memory pool. \*/
    RT_Object_Class_Device        = 0x09,      /\*\*< 对象为设备类型 \*/
    RT_Object_Class_Timer         = 0x0a,      /\*\*< 对象为定时器类型 \*/
    RT_Object_Class_Unknown       = 0x0c,      /\*\*< 对象类型未知 \*/
    RT_Object_Class_Static        = 0x80       /\*\*< 对象为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值