完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大神求教,视屏学习里说信号量相当于变量,下面有几点疑问
1.下图是OSSemCreate();函数创建信号量,创建一个二进制信号量将初始值置1,那么运行OSSemPost();信号量加一,信号量会不会归零? 2.请求信号量是什么意思?CPU执行到一个任务函数OSSemPend();处等待其他任务释放信号量,这个等待的过程称为请求信号量吗?CPU既然在等待信号量释放那就不会去执行其他任务释放信号量的函数,这样不就永远等不到信号量吗?还是在执行OSSemPend();时发生了任务调度?3.信号量请求函数OSSemPend()怎样才算请求到信号量?是信号量的值不为0吗?当函数OSSemPend()请求到信号量时信号量的值是否减1?假如有多个任务共用一个信号量,一个任务释放信号量时想哪个任务释放信号量呢?如果将OPT参数设为OS_OPT_POST_ALL,同时又有多个任务在请求信号量哪么该如何执行?能否请求信号量的特定值,当信号量为一个特定值时才视为函数OSSemPend()请求到信号量? |
|
相关推荐
5个回答
|
|
有几点也不明白。。
|
|
|
|
对于第二个问题,OSSemPend()会引发任务调度。可以理解成,执行到pend函数后,只有等到post之后,这个任务才会继续进行下去。
|
|
|
|
3.当信号量的值为0时,无法请求到信号量。post函数里面有opt,好像只能给全部或者优先级最高的,如果post了,所有pend的程序会进入就绪态,之后就按优先级来运行。
|
|
|
|
多谢指教
|
|
|
|
多谢指教
|
|
|
|
只有小组成员才能发言,加入小组>>
772 浏览 0 评论
1148 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1060浏览 3评论
189浏览 2评论
453浏览 2评论
365浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
452浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 13:33 , Processed in 1.180784 second(s), Total 56, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号