ucosIII 信号量

本文介绍了UCOSIII中的信号量,将其比喻为上锁机制,用于资源保护和任务同步。信号量分为二进制和计数型,分别适用于不同场景。详细阐述了信号量的工作原理,如等待、释放和不同类型的信号量特点。还提到了保护资源的其他方法,如关闭中断和调度器上锁,并列出了信号量的相关API,包括创建、删除、等待、取消和释放。

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

本文内容简介:

信号量

信号量简介

  1. 信号量像是一种上锁机制,代码必须获得对应的钥匙才能继续执行,一旦获得了钥匙,也就意味着该任务具有进入被锁部分代码的权限。一旦执行至被锁代码段,则任务一直等待,直到对应被锁部分代码的钥匙被再次释放才能继续执行。
  2. 信号量用于控制对共享资源的保护,但是现在基本用来做任务同步用。
  3. 要想获取资源的任务必须执行“等待”操作,
    1. 如果该资源对应的信号量有效值大于1,则任务可以获得该资源,任务继续运行。
    2. 如果该信号量的有效值为0,则任务加入等待信号量的任务表中。
    3. 如果等待时间超过某一个设定值,该信号量仍然没有被释放掉,则等待信号量的任务就进入就绪态
    4. 如果将等待时间设置为0的话任务就将一直等待该信号量
  4. 信号量通常分为两种:二进制信号量和计数型信号量
    二进制信号量只能取0和1两个值,计数型信号量的信号量值大于1,计数型信号量的范围由OS_SEM_CTR决定,OS_SE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值