【7】uC/OS-III应用开发————>事件(STM32F767)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值