嵌入式学习小组
直播中

折剑青

7年用户 168经验值
私信 关注

请问ucosIII多个任务等待同一个信号量该怎么办?

如题,初学ucos,在看书看得任务同步这一章节时候,文章是这么写的:OSSemPost发布信号量时,参数设置OS_OPT_POST_ALL,可以对所有等待该信号量的任务进行广播,这样所有等待该信号量的任务都变成了就绪态
有个疑问,假如有3个任务ABC同时等待同一个信号量,这时候ISR广播了信号量,优先级最高的任务A会先运行,
A得到了信号量之后OSSemPend就把信号量减1了,
这时候BC任务切换时是否还是得不到信号量继续阻塞?
这种问题其实完全可以自己实验,但是手上现在没有环境和资源,又急着想知道,求高手指点
谢谢

回帖(1)

王婷婷

2019-10-11 09:23:28
调用函数OSSemPost()发送信号量的时候如果选择参数OS_OPT_POST_ALL,可不是给信号量值加一!而是加上等待这个信号量的任务数!所以你A任务Pend一次不可能将信号量pend完。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分