完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
不排除我看pdf,看的不仔细造成我理解有问题。
void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name, OS_SEM_CTR cnt, OS_ERR *p_err) cnt :信号量的初始值。如果此值为1,代表信号量为二进制信号量。 如果大于1,则代表为计数型信号量。 以上是原子哥的教程10.1.1中原话。。而我在仔细看任务同步那节教程是,例子中有, //创建一个信号量 OSSemCreate ((OS_SEM* )&SYNC_SEM, (CPU_CHAR* )"SYNC_SEM", (OS_SEM_CTR)0, (OS_ERR* )&err);为啥cnt中被设置为0呀。纠结好久。后来看 嵌入式实时操作系统uC/OS-III 这本书391页void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name, OS_SEM_CTR cnt, OS_ERR *p_err)cnt:大体意思就是 当信号量用于共享资源时,可以设置为1 (二进制)或者大于1(计数型) 当用于信号机制,则该值应该设置为0.在我理解中,信号机制 就应该是 任务同步 |
|
相关推荐
2个回答
|
|
在共享资源中,cnt :信号量的初始值。如果此值为1,代表信号量为二进制信号量,如果大于1,则代表为计数型信号量。
用于任务同步时,一般情况下N的初始值是0,表示事件还没有发生。 在初始化时也可以将N的初值设为大于0的某个值来表示初始情况下有多少信号量可以使用。 |
|
|
|
嗯,算是有歧义吧,这里应该是想表达二值信号量的cnt值最大为1。
|
|
|
|
只有小组成员才能发言,加入小组>>
695 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
655浏览 9评论
651浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
783浏览 6评论
630浏览 5评论
670浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 23:54 , Processed in 1.092255 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号