rtos学习 一些概念的理解

用图形对比如下:

队列:

里面可以放任意数据,可以放多个数据
任务、ISR都可以放入数据;任务、ISR都可以从中读出数据
事件组:

一个事件用一bit表示,1表示事件发生了,0表示事件没发生
可以用来表示事件、事件的组合发生了,不能传递数据
有广播效果:事件或事件的组合发生了,等待它的多个任务都会被唤醒
信号量:

核心是"计数值"
任务、ISR释放信号量时让计数值加1
任务、ISR获得信号量时,让计数值减1
任务通知:

核心是任务的TCB里的数值
会被覆盖
发通知给谁?必须指定接收任务
只能由接收任务本身获取该通知
互斥量:

数值只有0或1
谁获得互斥量,就必须由谁释放同一个互斥量
————————————————
版权声明:本文为CSDN博主「挨踢民工biubiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35181236/article/details/132843311

内核对象    生产者    消费者    数据/状态    说明
队列    ALL    ALL    数据:若干个数据 谁都可以往队列里扔数据, 谁都可以从队列里读数据    用来传递数据, 发送者、接收者无限制, 一个数据只能唤醒一个接收者
事件组    ALL    ALL    多个位:或、与 谁都可以设置(生产)多个位, 谁都可以等待某个位、若干个位    用来传递事件, 可以是N个事件, 发送者、接受者无限制, 可以唤醒多个接收者:像广播
信号量    ALL    ALL    数量:0~n 谁都可以增加一个数量, 谁都可消耗一个数量    用来维持资源的个数, 生产者、消费者无限制, 1个资源只能唤醒1个接收者
任务通知    ALL    只有我    数据、状态都可以传输, 使用任务通知时, 必须指定接受者    N对1的关系: 发送者无限制, 接收者只能是这个任务
互斥量    只能A开锁    A上锁    位:0、1 我上锁:1变为0, 只能由我开锁:0变为1    就像一个空厕所, 谁使用谁上锁, 也只能由他开锁
————————————————
版权声明:本文为CSDN博主「挨踢民工biubiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35181236/article/details/132843311

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值