RTOS笔记05——事件组

1-事件组

出现的渊源:

无论是信号量、互斥量、队列,都只能通知一个任务,事件组可以实现广播,直接唤醒所有满足条件的任务

特性:A负责接收事件组,C负责写事件组。其中,需要表示的有:需要那些事情才能触发、事情之间的关系(与、或),则使用低位来表示事件,A的第0、2位 置1 则表示希望0事件和2事件发生,第1位 置0则表示不关注,然后用高八位来表示这两个事件是同时发生还是其一发生时唤醒任务A。若是或,则C将第0位 置1时,将遍历链表,发现A符合条件,则唤醒A,若有其他符合条件的任务,也一并唤醒

调用方法:

创建:

设置事件组(写事件)

注意

等待事件:

pdtrue为and,

实例:等待事件0 and 事件1(用1左移n位则n位使能,用或操作并起来)

实例:写事件0

建议操作:

1-将等待放在while前,则等到事件,被唤醒后才能开始整整进行任务

2-将等待放在while里,等到事件执行一次。

问题:

现3的优先级比较高,接收到广播后3会先运行(mdelay),完成后自行删除

在任务中若加了释放信号量(上一张的内容),即

就会卡死,任务二就进入不了

若是删掉,便能正常进行

不知道原因是什么。

(互斥量之前仅定义,并未获取过)(所以可能互斥量不能重复释放?)

确实不能哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值