完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在看公司的代码,有个地方不明白(其实,我不怎么懂ucos ,正在熟悉过程中)
我看了一下,此信号量调用的地方,感觉有些摸不到头绪, 首先定义信号量, OS_SEM xxx; 然后,创建 OSSemCreate (&xxx, "XXX ok", 0 , &err); 接着在某个任务中,有如下调用: void task(void) { ......... .......... pro(&xxx); ............ } //////////////////////////////////////////////////// void pro(OS_SEM *point) { ......... .......... get.ok = point; ............ } void task_2(void) { ......... ........... if(get.ok != NULL) { ......... } ........... .......... } 我的疑问是,这样使用信号量属于什么方式呢?任务同步?资源同步?信号量的值被初始化为0之后,程序代码中没有post,百思不得解。。。 这样使用信号量有什么意义么??? 求懂得ucos的坛友赐教,谢谢了! |
|
相关推荐
2个回答
|
|
就你给的这点信息来看,如果信号量创建成功以后就将创建好的信号量赋给get.ok,然后在task_2任务中判断信号量是否创建成功,如果信号量创建成功以后就做其他处理,没有看到Post和Pend之类的操作,至于信号量是来做任务同步还是资源保护真的看不出来,看来你只能去请教你们公司写这个代码的人了,话说你们公司搞开发代码都不加注释的吗?!
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
818 浏览 0 评论
1162 浏览 1 评论
2537 浏览 5 评论
2872 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2720 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1118浏览 3评论
199浏览 2评论
465浏览 2评论
382浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
463浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 07:23 , Processed in 1.122558 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号