[uCOS/RTOS] 二值信号量与互斥信号量区没区别吗?

[复制链接]
1899|4
 楼主| hualiming025 发表于 2014-3-24 10:21 | 显示全部楼层 |阅读模式
    二值信号量  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的访问,你觉得这样好不好?
ballack_linux 发表于 2014-3-24 14:03 | 显示全部楼层
那你要看是否可以被抢占啦,二值信号量是使可以共享资源独占访问的,但是如你自己所说,会导致优先级反转的问题。如果你的LCD访问可以被抢占而不会出错误,那是可以的

评分

参与人数 2威望 +5 收起 理由
飛饵 + 3 很给力!
hualiming025 + 2 很给力!

查看全部评分

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

本版积分规则

32

主题

114

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部