FreeRTOS 任务间的通信
2023-12-24 13:11:52
消息队列:
????????队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息。
信号量:semphr,基于消息队列实现
? ? ? ? 二值信号量:用于判断是否有消息
? ? ? ? ? ? ? ? 任务与任务同步
? ? ? ? ? ? ? ? 中断与任务同步
? ? ? ? 计数信号量:事件计数与资源管理
?互斥量:?特殊的二值信号量
? ? ? ? 实现对临界资源的独占式处理
? ? ? ? 优先级翻转问题:高任务抢占低任务无法获取互斥量而进入阻塞状态,即优先级翻转
? ? ? ? 优先级继承可以减少优先级翻转的危害:把低优先级任务临时提高到高优先级任务的级别
? ? ? ? 递归互斥量:一个任务可独占互斥量的次数。
事件(集):events
? ? ? ? 用于任务间的同步通信,触发任务运行
? ? ? ? 可以进行逻辑与或,实现一对多,多对多的同步
? ? ? ? 用于事件类型的通信,无数据传输
? ? ? ? 由于信号量会累加,所以不可以多对多的通信
? ? ? ? 事件可以被任意的任务读写
文章来源:https://blog.csdn.net/weixin_43239805/article/details/135179431
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!