RT-thread内核对象--事件集

 事件控制块:在rtdef.h

 #ifdef RT_USING_EVENT/*事件的选项:逻辑或,逻辑与,清楚标志*/#define RT_EVENT_FLAG_AND 0x01 /**< logic and *#define RT_EVENT_FLAG_OR 0x02 /**< logic or */

#define RT_EVENT_FLAG_CLEAR 0x04 /**< clear flag */ /*事件结构体*/
struct rt_event { struct rt_ipc_object parent; /**< inherit from ipc_object */ //从IPC对象派生 rt_uint32_t set; /**< event set */ //保存接收到的事件集 }; typedef struct rt_event *rt_event_t; #endif


事件相关接口:在ipc.c中
1.创建事件:rt_sem_create(
const char *name, rt_uint8_t flag);
2.删除事件:rt_sem_delete(rt_sem_t sem);
3.初始化事件:rt_sem_init(
rt_event_t event, const char *name, rt_uint8_t flag);
4.脱离事件:rt_sem_detach(rt_sem_t sem);
5.发送事件:
rt_err_t rt_event_send(rt_event_t event, rt_uint32_t set);
6.接收事件:rt_err_t rt_event_recv(rt_event_t event,rt_uint32_t set,
rt_uint8_t option,rt_int32_t timeout,rt_uint32_t *recved);
7.控制事件:rt_err_t rt_event_control(rt_event_t event, rt_uint8_t cmd, void *arg);

相关接口说明:


猜你喜欢

转载自www.cnblogs.com/cqcw/p/10478571.html