打印
[uCOS/RTOS]

二值信号量与互斥信号量区没区别吗?

[复制链接]
1617|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
    二值信号量  OSSemCreate(1)
    互斥信号量 OSMutexCreate(  ,  ,  )
    看到ucosII的官方模板中,对LCD访问控制时使用的是二值信号量,而不是我认为应该使用的互斥信号量,虽然我知道这两种方法都能保证任务对LCD访问是独享的,但是对此还是心生疑问,那个二值信号量不是存在优先级翻转现象吗?

相关帖子

沙发
ballack_linux| | 2014-3-24 13:04 | 只看该作者
有明显区别啊  你可以查看ucosII源码, 可以看到 互斥信号量会提高当前运行任务的优先级,从而防止在访问共享资源时被更高优先级的任务抢占

使用特权

评论回复
板凳
ballack_linux| | 2014-3-24 13:22 | 只看该作者
可查看这段OSMutexPend代码

使用特权

评论回复
地板
hualiming025|  楼主 | 2014-3-24 13:48 | 只看该作者
ballack_linux 发表于 2014-3-24 13:04
有明显区别啊  你可以查看ucosII源码, 可以看到 互斥信号量会提高当前运行任务的优先级,从而防止在访问共 ...

那你说说看,ucos发布的代码用二值信号量来保护对LCD的访问,你觉得这样好不好?

使用特权

评论回复
5
ballack_linux| | 2014-3-24 14:03 | 只看该作者
那你要看是否可以被抢占啦,二值信号量是使可以共享资源独占访问的,但是如你自己所说,会导致优先级反转的问题。如果你的LCD访问可以被抢占而不会出错误,那是可以的

使用特权

评论回复
评分
参与人数 2威望 +5 收起 理由
飛饵 + 3 很给力!
hualiming025 + 2 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

114

帖子

2

粉丝