rt_err_t rt_event_delete(rt_event_t event); 调用此函数,可以释放事件集控制块占用的内存资源。在删除一个事件集对象时,应该确保该事件集不再被使用。 在删除前会唤醒所有挂起在该事件集上的线程,然后释放事件集对象占用的内存块。 2. 脱离静态创建的事件集 删除rt_event_init() 初始化的事件集,可以用...
rt_err_t rt_event_delete(rt_event_t event); 1. 调用此函数,可以释放事件集控制块占用的内存资源。在删除一个事件集对象时,应该确保该事件集不再被使用。 在删除前会唤醒所有挂起在该事件集上的线程,然后释放事件集对象占用的内存块。 2. 脱离静态创建的事件集脱离 删除rt_event_init()初始化的事件集,可...
rt_err_trt_event_send(rt_event_tevent,rt_uint32_tset); 使用该函数接口时,通过参数set指定的事件标志来设定event事件集对象的事件标志值。然后遍历等待在event事件集对象上的等待线程链表,判断是否有线程的事件激活要求与当前event对象事件标志值匹配,如果有,则唤醒该线程。 3. 接收事件 一个事件集对象可以同时...
EVENT_FLAG3);rt_kprintf("thread2 leave.\n");}int main(){/* 线程控制块指针 */rt_thread_t thread1 = RT_NULL;rt_thread_t thread2 = RT_NULL;rt_err_t result;/* 初始化事件对象 */result = rt_event_init(&event, "event", RT_IPC_FLAG_FIFO)...
rt_err_t rt_event_init(rt_event_t event, const char* name, rt_uint8_t flag); (1)入口参数: event:事件集对象的句柄。 name:事件集的名称。 flag:事件集的标志,它可以取如下数值:RT_IPC_FLAG_FIFO 或 RT_IPC_FLAG_PRIO。 (2)返回值: ...
1rt_err_t rt_event_init(rt_event_t event, const char* name, rt_uint8_t flag); 1. (1)入口参数: event:事件集对象的句柄。 name:事件集的名称。 flag:事件集的标志,它可以取如下数值:RT_IPC_FLAG_FIFO或RT_IPC_FLAG_PRIO。 (2)返回值: ...
1、event 事件集对象的句柄 2、name 事件集的名称 3、flag 事件集的标志,它可以取如下数值: RT_IPC_FLAG_FIFO 或 RT_IPC_FLAG_PRIO 返回值: RT_EOK 初始化成功 */ rt_err_t rt_event_init(rt_event_t event, const char *name, rt_uint8_t flag) ...
parent.flag = flag; /* initialize ipc object */ rt_ipc_object_init(&(event->parent)); /* initialize event */ event->set = 0; return event; } RTM_EXPORT(rt_event_create); 完成的主要工作: 从堆中分配事件集对象空间,将事件集对象纳入对象容器 设置事件标志 初始化IPC对象,将挂起线程链表...
static struct rt_event evt;int main(void){ rt_thread_t tid;rt_event_init(&evt, "event", ...
rt_err_t rt_event_init(rt_event_tevent,constchar*name, rt_uint8_t flag); 调用该接口时,需指定静态事件对象的句柄(即指向事件控制块的指针),然后系统会初始化事件对象,并加入到系统对象容器中进行管理。 脱离事件: rt_err_t rt_event_detach(rt_event_tevent);系统首先唤醒所有挂在该事件等待队列上的...