OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4767|回复: 4

关于信号量的一些疑惑

[复制链接]

31

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2013-4-22
在线时间
7 小时
发表于 2014-9-15 10:30:35 | 显示全部楼层 |阅读模式
5金钱
请教大家一个关于ucOS2信号量的问题:
1,就是假如一个任务创建了一个信号量,这个信号量可以是几个任务去竞争这个信号量么?
2,假如多个任务创建了几个信号量,可以由一个任务去接受这些信号量么?
3,如果任务等待时间没分配好,发送信号量的任务,发送了几次之后,接受信号量的任务才接受到信号量,这样的话会有什么后果
最近学完了ucOS的基础,感觉好小多地方不是很明白,望大神指点一二

最佳答案

查看完整内容[请看2#楼]

如果是互斥信号量,必须竞争,某个任务必须检测到此信号量已经使用完才能使用,所以多个任务使用同一个互斥信号量没有问题。如果是一般信号量,就是多值信号量,一般是2个任务通信使用比较多,用于提示一个任务有信号来了,需要动作。
http://www.tudou.com/programs/view/h5G_H9Kpk04/?bid=03&pid=1&resourceId=375113802_03_05_01
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-9-15 10:30:36 | 显示全部楼层
如果是互斥信号量,必须竞争,某个任务必须检测到此信号量已经使用完才能使用,所以多个任务使用同一个互斥信号量没有问题。如果是一般信号量,就是多值信号量,一般是2个任务通信使用比较多,用于提示一个任务有信号来了,需要动作。
回复

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2014-9-15 10:30:36 | 显示全部楼层
信号量有两种,一种是只有0和1的状态(互斥信号量),竞争机制;一种是数字量,每使用一次减1,减到0就任务调度。
手艺人要内外兼修。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-15 22:55:45 | 显示全部楼层
楼主多看看任哲的书本。ucosii不难学。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

31

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2013-4-22
在线时间
7 小时
 楼主| 发表于 2014-9-16 09:32:54 | 显示全部楼层
互斥信号量我明白,只是看到了一般信号量处理的源码,发送一个信号量就是将指针结构体中的某个值++,使用之后--,例如我按下按键发送信号量,假如我按下几次之后,接收信号量的任务才接受到(例如我在接收信号量函数的前面写个delay函数),这时按理论来说指针结构体中的这值增加了几次,那么等到接受任务接收到信号量之后,会有什么后果?
http://www.tudou.com/programs/view/h5G_H9Kpk04/?bid=03&pid=1&resourceId=375113802_03_05_01
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 21:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表