有了这样一个优雅的数据结构设计,那么基于这样一个数据结构设计,相应就很容易实现其内核对象集中管理的对外服务接口,那么其主要的服务接口有哪些呢? 其中一部分主要接口实现对象的增加\删除\检索等,这里以rt_object_init接口为例,来简要分析一下其实现: 对于内核对象增加\删除其主要就是利用内核容器首先检索到链表头结...
调用rt_object_is_systemobject 接口可判断一个对象是否是系统对象,在 RT-Thread 操作系统中,一个系统对象也就是一个静态对象,对象类型标识上 RT_Object_Class_Static 位置位。通常使用rt_object_init() 方式初始化的对象都是系统对象。对该函数的输入参数的描述如下表: ...
}/* 导出命令 */MSH_CMD_EXPORT(obj_test_init,objectinit test); MSH_CMD_EXPORT(obj_test_create, objcreatetest); MSH_CMD_EXPORT(obj_test_dump,objecttest dump); MSH_CMD_EXPORT(obj_test_find,objecttest find); MSH_CMD_EXPORT(obj_test_detach,objecttest detach); MSH_CMD_EXPORT(obj_test_de...
struct rt_object* obj_pointers[OBJ_TEST_TBL_SIZE + 10] = { 0 }; obj_size = rt_object_get_pointers(RT_Object_Class_Thread, obj_pointers, sizeof(obj_pointers)); rt_kprintf("object init : object size=%d\n", obj_size); rt_kprintf("| index | name | flag | type |\n"); rt_k...
其中一部分主要接口实现对象的增加\删除\检索等,这里以rt_object_init接口为例,来简要分析一下其实现: void rt_object_init(structrt_object *object, enum rt_object_class_typetype,constchar *name) { register rt_base_t temp;structrt_list_node *node = RT_NULL;structrt_object_information *information...
voidrt_object_init(struct rt_object*object,/* 对象指针 */enumrt_object_class_type type,/* 对象类型 */constchar*name);/* 对象名字 */ 静态对象的删除(脱离)接口: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 voidrt_object_detach(rt_object_t object); ...
rt_object_init(&_obj[index], _obj_tbl[index].type, _obj_tbl[index].name); } } /* 动态创建对象 obj_test_create thread1 */ void obj_test_create(uint8_t argc, char** argv) { struct rt_object* obj = RT_NULL; if (argc >= 2) ...
voidrt_timer_init(rt_timer_ttimer, constchar*name, void(*timeout)(void*parameter), void*parameter, rt_tick_ttime, rt_uint8_tflag) { rt_object_init((rt_object_t)timer, RT_Object_Class_Timer, name);//初始化对象变量,并将其节点list插入对应容器中; ...
when disable debug */ { RT_ASSERT(obj != object);} 或者 struct rt_object *obj RT_UNUSED;...
struct rt_timer{struct rt_object parent; /**< inherit from rt_object */rt_list_t row[RT_TIMER_SKIP_LIST_LEVEL];void (*timeout_func)(void *parameter); /**< timeout function */void *parameter; /**< timeout function's parameter */rt_tick_t init_tick; /**< timer timeout tick ...