高级会员
- 积分
- 503
- 金钱
- 503
- 注册时间
- 2014-2-28
- 在线时间
- 7 小时
|
5金钱
最近在看公司的代码,有个地方不明白(其实,我不怎么懂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的坛友赐教,谢谢了! |
|