Lite OS学习之事件EVENT

时间:2022-07-17 04:24:12

1. Lite OS的事件EVENT,就是一个任务向另外一个任务通知事件的,不能数据传输。看下有的函数,实际比较复杂

Lite OS学习之事件EVENT

2. 具体还是看编程,先全局结构体整个事件变量

/*事件控制结构体*/
EVENT_CB_S example_event;
/*等待的事件类型*/
#define event_wait 0x00000001

在其中一个任务A里面,初始化事件,然后写事件

uwRet = LOS_EventInit(&example_event);
uwRet = LOS_EventWrite(&example_event, event_wait);

另外一个更高优先级任务里面读这个事件

uwEvent = LOS_EventRead(&example_event, event_wait, LOS_WAITMODE_AND, );

等不用了,再清除掉这个事件

 LOS_EventClear(&example_event, ~example_event.uwEventID);

3. 总结,读函数应该是阻塞的,一直等待事件,等A任务写之后,B优先级更高,B运行。所以写事件会触发一次任务调度。