FreeRTOS 任务间的通信

消息队列:

        队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息。

信号量:semphr,基于消息队列实现

        二值信号量:用于判断是否有消息

                任务与任务同步

                中断与任务同步

        计数信号量:事件计数与资源管理

 互斥量: 特殊的二值信号量

        实现对临界资源的独占式处理

        优先级翻转问题:高任务抢占低任务无法获取互斥量而进入阻塞状态,即优先级翻转

        优先级继承可以减少优先级翻转的危害:把低优先级任务临时提高到高优先级任务的级别

        递归互斥量:一个任务可独占互斥量的次数。

事件(集):events

        用于任务间的同步通信,触发任务运行

        可以进行逻辑与或,实现一对多,多对多的同步

        用于事件类型的通信,无数据传输

        由于信号量会累加,所以不可以多对多的通信

        事件可以被任意的任务读写

任务通知:task notify

        每一个任务都有一个 32 位的通知量

        通知量可递增,可当作计数信号量使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值