- 简述
- 事件是一种实现任务间通信的机制,主要用于实现多任务间的同步,但事件通信只能是事件类型的通信,无数据传输
- 可以实现一对多,多对多的同步,即一个任务可以等待多个事件的发生
- 事件仅用于同步,不提供数据传输功能
- 允许多个任务对同一事件进行读、写操作
- 事件无排队性,即多次向任务设置同一事件(如果任务还未来得及读走),等效于只设置一次
- 事件不与任务相关联,事件相互独立,一个32位的变量就是事件的集合,标识该任务发生的事件类型,
- 0:事件类型未发生,1:事件类型己发生
- 应用场景
- 事件做标志位,判断某些事件是否发生,然后做数据处理
- 事件可使用于多种场合,它能够在一定程度上替代信号量,用于任务与任务,中断与任务间的同步
- 事件运作机制
- 等待接收:可以根据感兴趣的事件类型等待事件的单个/多个事件
- 等待成功:必须使用OS_OPT_PEND_FLASG_CONSUME选项来清除己接收到的事件类型,否则不会清除己接收到的事件
- 设置事件:对指定事件写入指定的事件类型,设置事件集合的对应事件位为1,可一次同时写多个事件类型
- 清除事件:根据写入参数事件句柄和待清除的事件类型,对事件相应位进行清0操作‘
- 相关函数
- OSFlagCreate(); 创建事件标志组
- OSFlagDel(); 删除事件标志组
- OSFlagPend(); 等待事件标志组
- OSFlagPendAbort(); 取消等待事件标志组
- OSFlagPendGetFlagsRdy(); 获取使任务就绪的事件标志
- OSFlagPost();&nbs
【7】uC/OS-III应用开发————>事件(STM32F767)
最新推荐文章于 2022-11-08 21:25:35 发布
本文深入探讨了uC/OS-III操作系统中的事件机制,解析了事件作为任务间通信的重要方式,如何实现多任务同步,以及其运作机制、应用场景和具体实现例程。

最低0.47元/天 解锁文章
434

被折叠的 条评论
为什么被折叠?



