UCOS-II 信号量、互斥信号量、事件标志组

本文详细介绍了嵌入式系统中的几种同步机制,包括信号量、互斥信号量、事件标志组、邮箱及队列的概念与应用。通过这些机制可以有效地实现任务间的同步和资源共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信号量

    设置一个值,该值为允许同时访问该资源的任务个数

        一个任务访问该信号该值就减1,为0时其他任务无法再访问只能等待

        其他任务释放资源后该值会加1

互斥信号量

    用信号量进行行为同步时(互斥信号量),只能提供同步的时刻信息,不能提供内容信息

        控制方要求得到控制方的内容信息时,可用消息邮箱或消息队列

    信号量的特殊情况,设置的值为1

    即同时访问该资源的任务只有1个

        保证资源的同步性

事件标志组

    看名字就知道是事件标志

    对一个事件所需其他事件的条件进行标志

        例:A事件发生的条件是B/C/D三个事件必须都发生了才能发生A事件

                那么对A事件就可创建一个事件标志组,对B/C/D三个事件的状态进行判断,对已发生的事件对对应标志位进行置位

邮箱

    一个的变量的指针从一个任务传递到另一个或多个任务中去

    该指针先发到邮箱,任务从邮箱里提取指针(传递指针指向具体变量值)

    消息邮箱只能存放一条消息

        进行任务的同步时,消息产生比消息使用要慢(保证使用任务一直在等待,不至于消息丢失)

        消息产生比消息使用速度快

            可用消息队列(存放多条消息),解决邮箱临时堆积问题

                消息队列:消息平均产生时间同样要比消息使用时间要短,否则消息队列会溢出

队列

    实现邮箱的数组,变量的指针以队列的方式排列
  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值