中级会员
 
- 积分
- 419
- 金钱
- 419
- 注册时间
- 2015-8-22
- 在线时间
- 82 小时
|
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); //释放互斥信号量
}
我想问两个任务刚开始都在请求互斥信号量 那刚开始是谁发的信号量, 我的理解是 初始化的时候 就有一次可用的互斥信号量
如果是这样 那么问题来了 如果我建立了一个互斥信号量 一开始我不想用,想让目标任务一直等待 某一时刻另外的任务发出互斥信号量 该怎么设置啊
|
|