OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8548|回复: 4

关于例程使用互斥信号量初始化问题

[复制链接]

18

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-8-22
在线时间
82 小时
发表于 2016-6-10 15:46:00 | 显示全部楼层 |阅读模式
1金钱
OS_MUTEX        TEST_MUTEX;                //定义一个互斥信号量

        //创建一个互斥信号量
        OSMutexCreate((OS_MUTEX*        )&TEST_MUTEX,
                                  (CPU_CHAR*        )"TEST_MUTEX",
                  (OS_ERR*                )&err);


void task1_task(void *p_arg)
{
OSMutexPend (&TEST_MUTEX,0,OS_OPT_PEND_BLOCKING,0,&err);        //请求互斥信号量   和普通的信号量  用法相似
。。。。。。。。
        OSMutexPost(&TEST_MUTEX,OS_OPT_POST_NONE,&err);                                //释放互斥信号量

}




void task2_task(void *p_arg){
OSMutexPend (&TEST_MUTEX,0,OS_OPT_PEND_BLOCKING,0,&err);        //请求互斥信号量   和普通的信号量  用法相似
。。。。。。。。
        OSMutexPost(&TEST_MUTEX,OS_OPT_POST_NONE,&err);                                //释放互斥信号量
}


我想问两个任务刚开始都在请求互斥信号量    那刚开始是谁发的信号量,   我的理解是  初始化的时候  就有一次可用的互斥信号量  
如果是这样  那么问题来了      如果我建立了一个互斥信号量  一开始我不想用,想让目标任务一直等待     某一时刻另外的任务发出互斥信号量   该怎么设置啊



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2016-6-11 20:04:34 | 显示全部楼层
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-6-8
在线时间
18 小时
发表于 2018-9-26 18:27:19 | 显示全部楼层
不知道楼主这个问题是怎么解决的?
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2018-10-18
在线时间
11 小时
发表于 2019-1-6 19:25:30 | 显示全部楼层
楼主你好,互斥信号量0表示可用,在创建信号量时已经默认为0了,默认是可用的,你的问题感觉方法很多,可以先试试一开机打算让它一直等待的任务进while(1)之前先请求互斥信号量(上锁,就是把信号量置1),然后进while一直等,另一个任务某个时刻释放,等的任务就可以请求通过了。你看说清楚了吗?不清楚留言哈,我写写代码发上来一起探讨探讨
回复

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2020-12-31
在线时间
27 小时
发表于 2021-6-28 14:40:47 | 显示全部楼层
郭正东 发表于 2019-1-6 19:25
楼主你好,互斥信号量0表示可用,在创建信号量时已经默认为0了,默认是可用的,你的问题感觉方法很多,可以 ...

你好,互斥信号量是有请求,在这个任务里面就要有释放吗,我用互斥信号量有错误码22401,22402,25006
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-9 20:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表